Operatore di chiamata sicura
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 14 di 93.
Quando hai una variabile nullable, non puoi chiamare direttamente i metodi o accedere alle proprietà su di essa: il compilatore non lo consente perché il valore potrebbe essere null. L’operatore di chiamata sicura ?. risolve elegantemente questo problema.
Invece di usare un normale punto ., usa ?. per accedere in sicurezza ai membri di un tipo nullable:
fun main() {
val name: String? = "Alice"
val length = name?.length // Returns 5
println(length)
val nullName: String? = null
val nullLength = nullName?.length // Returns null (no crash!)
println(nullLength)
}L'operatore di chiamata sicura verifica se il valore è null prima di accedere alla proprietà o al metodo. Se il valore è null, l'intera espressione restituisce null invece di andare in errore. Se il valore esiste, funziona proprio come una chiamata normale.
Puoi anche concatenare più chiamate sicure:
fun main() {
val text: String? = "Hello"
val result = text?.uppercase()?.length
println(result) // Stampa: 5
}Se una qualsiasi parte della catena è null, l’intera espressione restituisce null in modo sicuro senza generare errori.
Sfida
FacileTi viene fornita la seguente variabile nullable:
val message: String? = "Kotlin"Usa l'operatore di chiamata sicura per:
- Ottenere la lunghezza di
messagee stamparla - Convertire
messagein maiuscolo e stampare il risultato
Quindi, crea un'altra variabile nullable:
val empty: String? = nullUsa l'operatore di chiamata sicura per ottenere la lunghezza di empty e stamparla.
Ogni risultato dovrebbe essere stampato su una riga separata. Ricorda: l'operatore di chiamata sicura restituisce
nullquando il valore ènull.
Provalo tu
fun main() {
val message: String? = "Kotlin"
// TODO: Usa l'operatore di chiamata sicura per ottenere la lunghezza di message e stamparla
// TODO: Usa l'operatore di chiamata sicura per convertire message in maiuscolo e stamparlo
val empty: String? = null
// TODO: Usa l'operatore di chiamata sicura per ottenere la lunghezza di empty e stamparla
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamicoEsercitati da solo: Playground Kotlin