Operator bezpiecznego wywołania
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 14 z 93.
Gdy masz zmienną dopuszczającą wartość null, nie możesz bezpośrednio wywoływać jej metod ani uzyskiwać dostępu do jej właściwości: kompilator na to nie pozwoli, ponieważ wartość może być null. Operator bezpiecznego wywołania ?. elegancko rozwiązuje ten problem.
Zamiast używać zwykłej kropki ., użyj ?., aby bezpiecznie uzyskać dostęp do składowych typu dopuszczającego wartość null:
fun main() {
val name: String? = "Alice"
val length = name?.length // Zwraca 5
println(length)
val nullName: String? = null
val nullLength = nullName?.length // Zwraca null (bez awarii!)
println(nullLength)
}Operator bezpiecznego wywołania sprawdza, czy wartość jest równa null, zanim uzyska dostęp do właściwości lub metody. Jeśli wartość jest równa null, całe wyrażenie zwraca null zamiast powodować awarię. Jeśli wartość istnieje, działa tak samo jak zwykłe wywołanie.
Możesz również łączyć ze sobą wiele bezpiecznych wywołań:
fun main() {
val text: String? = "Hello"
val result = text?.uppercase()?.length
println(result) // Wypisuje: 5
}Jeśli dowolna część łańcucha ma wartość null, całe wyrażenie bezpiecznie zwraca null, nie zgłaszając błędu.
Wyzwanie
ŁatwyOto podana zmienna dopuszczająca wartość null:
val message: String? = "Kotlin"Użyj operatora bezpiecznego wywołania, aby:
- Uzyskać długość
messagei ją wypisać - Zmienić
messagena wielkie litery i wypisać wynik
Następnie utwórz inną zmienną dopuszczającą wartość null:
val empty: String? = nullUżyj operatora bezpiecznego wywołania, aby uzyskać długość empty i ją wypisać.
Każdy wynik powinien zostać wypisany w osobnym wierszu. Pamiętaj: operator bezpiecznego wywołania zwraca
null, gdy wartość wynosinull.
Spróbuj swoich sił
fun main() {
val message: String? = "Kotlin"
// TODO: Użyj operatora bezpiecznego wywołania, aby uzyskać długość message i ją wypisać
// TODO: Użyj operatora bezpiecznego wywołania, aby zamienić message na wielkie litery i wypisać wynik
val empty: String? = null
// TODO: Użyj operatora bezpiecznego wywołania, aby uzyskać długość empty i ją wypisać
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory – część 1
Operatory arytmetyczneOperator moduloPrzypisanie z operatoremOperatory porównaniaPowtórka – proste działania matematyczne7Podstawowe wejście/wyjście
Funkcja printlnSzablony ciągów znakówWczytywanie danych przez ReadLineKonwersja typówPowtórka — lata do emeryturyPowtórka — prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneArgumenty nazwaneWartości domyślneFunkcje z pojedynczym wyrażeniemPowtórka – funkcja SigmaPowtórka – funkcja walidująca2Zmienne
Val a VarWnioskowanie o typieLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPowtórzenie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Operatory logiczne, część 3Operator trójargumentowy z wyrażeniem ifPowtórka — prosta logika8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz3Obsługa wartości null
Czym jest bezpieczeństwo nullTypy dopuszczające nullOperator bezpiecznego wywołaniaOperator ElvisPodstawy wyzwania z funkcjamiAsercja wartości niebędącej nullPodsumowanie — bezpieczny dostęp6Podejmowanie decyzji
Instrukcja ifIf - elseIf jako wyrażenieWyrażenie whenWhen z zakresamiPowtórka — prosty kalkulator9Pętle
Pętla forPętla whilePętla do-whileBreakContinueZakresy w pętlachPętla zagnieżdżonaPowtórka – silniaPowtórka – dynamiczne wprowadzanie danychPoćwicz samodzielnie: Edytor online Kotlin