Operator bezpiecznego wywołania
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 14 z 93.
Gdy masz zmienną, która może mieć 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żywasz ?., 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 też łą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 i nie zgłasza błędu.
Wyzwanie
ŁatwyOtrzymujesz następującą zmienną dopuszczającą wartość null:
val message: String? = "Kotlin"Użyj operatora bezpiecznego wywołania, aby:
- Pobrać długość
messagei ją wypisać - Przekonwertować
messagena wielkie litery i wypisać wynik
Następnie utwórz kolejną zmienną dopuszczającą wartość null:
val empty: String? = nullUżyj operatora bezpiecznego wywołania, aby pobrać długość empty i ją wypisać.
Każdy wynik powinien być wypisany w osobnym wierszu. Pamiętaj: operator bezpiecznego wywołania zwraca
null, gdy wartością jestnull.
Spróbuj swoich sił
fun main() {
val message: String? = "Kotlin"
// TODO: Użyj operatora bezpiecznego wywołania, aby pobrać 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 pobrać 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