name
μπορεί να έχει μια τιμή τύπου String
ή να είναι nil
.nil
.1if name != nil {
2 print("Το όνομα είναι $name!)")
3} else {
4 print("Δεν υπάρχει όνομα.")
5}
6
if let
if let
, που σας επιτρέπει να κάνετε υποχρεωτική "unwrap" της προαιρετικής μεταβλητής.if let
1if let actualName = name {
2 print("Το όνομα είναι $actualName)")
3} else {
4 print("Δεν υπάρχει όνομα.")
5}
6
guard let
guard let
είναι μια άλλη μέθοδος που σας επιτρέπει να ελέγξετε την τιμή ενός προαιρετικού.guard let
1func printName() {
2 guard let actualName = name else {
3 print("Δεν υπάρχει όνομα.")
4 return
5 }
6 print("Το όνομα είναι $actualName)")
7}
8
force unwrap
!
) μπορεί να προκαλέσει εξαίρεση αν η τιμή είναι nil. Προτιμήστε να χρησιμοποιείτε if let
ή guard let
.Any
(η ρίζα όλων των τύπων στην Kotlin) και θέλετε να την μετατρέψετε σε πιο συγκεκριμένο τύπο, θα χρειαστεί να κάνετε μια μετατροπή.1val anyValue: Any = "Hello, Kotlin"
2val stringValue: String = anyValue as String
3
anyValue
μετατρέπεται σε τύπο String
.as?
. Αν η μετατροπή αποτύχει, η μεταβλητή θα πάρει την τιμή null
αντί να ρίξει εξαίρεση.as?
stringValue
θα είναι null
, καθώς η μετατροπή δεν είναι δυνατή.as
και as?
, μπορείτε να βελτιώσετε την ασφάλεια του κώδικα σας και να διευκολύνετε την αναγνωσιμότητά του. Θυμηθείτε, η προσεκτική προσέγγιση στις μετατροπές τύπου είναι το κλειδί για την ανάπτυξη ποιοτικού λογισμικού.as
και as
;as
προκαλεί σφάλμα αν η μετατροπή αποτύχει, ενώ το as?
επιστρέφει null
.as
, ενώ με as?
θα επιστρέψει null
.as?
ή κάνοντας έλεγχο του τύπου πριν τη μετατροπή.