Menu
Coddy logo textTech

Asercja wartości niebędącej null

Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 17 z 93.

Operator bezpiecznego wywołania i operator Elvis obsługują wartości null w bezpieczny sposób, ale czasami masz absolutną pewność, że w określonym miejscu kodu wartość dopuszczająca null nie jest null. Operator asercji nie-null !! pozwala powiedzieć Kotlinowi: „Gwarantuję, że ta wartość nie jest null”.

fun main() {
    val name: String? = "Alice"
    val length = name!!.length  // Konwertuje String? na String
    println(length)  // Wypisuje: 5
}

Operator !! konwertuje typ dopuszczający wartość null na jego odpowiednik niedopuszczający wartości null. Jeśli jednak wartość faktycznie wynosi null, program ulegnie awarii z błędem NullPointerException:

fun main() {
    val name: String? = null
    val length = name!!.length  // Tutaj występuje błąd!
}

Kiedy go używać: Używaj !! tylko wtedy, gdy masz logikę gwarantującą, że wartość nie może być null, ale kompilator nie może tego zweryfikować. W większości przypadków zamiast tego wybieraj bezpieczne wywołania ?. lub operator Elvis ?:. Asercja niepustości powinna być ostatecznością, a nie pierwszym wyborem.

challenge icon

Wyzwanie

Łatwy

Napisz funkcję getUppercaseLength, która przyjmuje parametr text i zwraca długość jego wersji zapisanej wielkimi literami.

Funkcja otrzymuje wartość typu string, która nie jest null, ale typ parametru jest nullable (String?). Użyj operatora asercji o niepustej wartości !!, aby przekonwertować ją na typ non-nullable, a następnie wywołaj metodę uppercase() i pobierz length.

Parametry:

  • text (String?): Wartość typu string nullable, która na pewno zawiera wartość

Zwraca: Długość wersji tekstu zapisanej wielkimi literami (Int)

Uwaga: W tym wyzwaniu dane wejściowe zawsze będą prawidłowym stringiem, nigdy wartością null. To symuluje sytuację, w której wiesz, że wartość istnieje, ale kompilator nie może tego zweryfikować.

Spróbuj swoich sił

fun getUppercaseLength(text: String?): Int {
    // Napisz tutaj kod
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Kotlin