Menu
Coddy logo textTech

Asserzione non-null

Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 17 di 93.

L’operatore di chiamata sicura e l’operatore Elvis gestiscono i valori null in modo sicuro, ma a volte hai la certezza assoluta che un valore nullable non sia null in un punto specifico del tuo codice. L’operatore di asserzione non-null !! ti permette di dire a Kotlin: "Garantisco che questo non è null."

fun main() {
    val name: String? = "Alice"
    val length = name!!.length  // Converte String? in String
    println(length)  // Stampa: 5
}

L'operatore !! converte un tipo nullable nella sua controparte non-nullable. Tuttavia, se il valore è effettivamente null, il programma andrà in crash con una NullPointerException:

fun main() {
    val name: String? = null
    val length = name!!.length  // Va in crash qui!
}

Quando usarlo: Usa !! solo quando hai una logica che garantisce che il valore non possa essere null, ma il compilatore non può verificarlo. Nella maggior parte dei casi, preferisci le chiamate sicure ?. o l'operatore Elvis ?:. L'asserzione di non nullità dovrebbe essere l'ultima risorsa, non la prima scelta.

challenge icon

Sfida

Facile

Scrivi una funzione getUppercaseLength che accetta un parametro text e restituisce la lunghezza della sua versione in maiuscolo.

La funzione riceve un valore stringa non nullo, ma il tipo del parametro è nullable (String?). Usa l'operatore di asserzione di non nullità !! per convertirlo in un tipo non nullable, poi concatena il metodo uppercase() e ottieni length.

Parametri:

  • text (String?): Una stringa nullable che è garantito contenga un valore

Restituisce: La lunghezza della versione in maiuscolo del testo (Int)

Nota: per questa sfida, l'input sarà sempre una stringa valida, mai null. Questo simula uno scenario in cui sai che il valore esiste, ma il compilatore non può verificarlo.

Provalo tu

fun getUppercaseLength(text: String?): Int {
    // Scrivi il codice qui
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Kotlin