Ecco un esempio per rendere le cose più chiare. Diciamo che hanno questa funzione
fun main(args: Array<String>) {
var email: String;
email = null
println(email);
}
Questo produrrà il seguente errore di compilazione.
Null can not be a value of a non-null type String
Ora è possibile impedire che con l'aggiunta di un punto di domanda per il tipo String
per renderlo annullabile.
Così abbiamo
fun main(args: Array<String>) {
var email: String?;
email = null
println(email);
}
Questo produce un risultato di
null
Ora, se vogliamo che la funzione per generare un'eccezione quando il valore della posta elettronica è nullo, possiamo aggiungere due esclamazioni alla fine dell'e-mail. Ti piace questa
fun main(args: Array<String>) {
var email: String?;
email = null
println(email!!);
}
Questo lancerà una KotlinNullPointerException
fonte
2017-05-29 18:52:43
cosa significa quando il '' !! si trova alla fine di una dichiarazione? IJ auto-convert a Kotlin lo ha fatto per me "val price = sale.latest !!" – ycomp
@ycomp, significa che 'sale.latest' può contenere' null'; l'assegnazione avrà esito positivo solo se 'sale.latest' non è nullo e altrimenti genererà NPE. Ciò fornisce la sicurezza nullo per 'val prezzo': il suo tipo sarà non nullo. Vedi https://kotlinlang.org/docs/reference/null-safety.html – hotkey