Menu
Coddy logo textTech

Operatore Elvis

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

L'operatore di chiamata sicura è ottimo per evitare arresti anomali, ma a volte ti serve un valore effettivo invece di null. L'operatore Elvis ?: ti consente di fornire un valore predefinito quando un'espressione è null.

La sintassi è semplice: inserisci ?: dopo un’espressione nullable, seguito dal valore di fallback:

fun main() {
    val name: String? = null
    val displayName = name ?: "Guest"
    println(displayName)  // Stampa: Guest
}

Se il lato sinistro non è null, viene usato quel valore. Se è null, il lato destro diventa il risultato. Funziona perfettamente con le chiamate sicure:

fun main() {
    val text: String? = null
    val length = text?.length ?: 0
    println(length)  // Stampa: 0
    
    val greeting: String? = "Hello"
    val greetingLength = greeting?.length ?: 0
    println(greetingLength)  // Stampa: 5
}

L'operatore prende il nome dal fatto che ?: ricorda i capelli di Elvis visto di lato. Ma soprattutto, offre un modo semplice per convertire i tipi nullable in valori non nullable con valori predefiniti sensati.

challenge icon

Sfida

Facile

Un pacco ha un'etichetta di tracciamento facoltativa e una destinazione facoltativa. Il codice iniziale fornisce entrambi i valori nullable. Usa ?: per scegliere "Pending" quando manca l'etichetta di tracciamento e "Unassigned" quando manca la destinazione. Stampa l'etichetta scelta, poi la destinazione scelta, su righe separate.

Provalo tu

fun main() {
    val trackingLabel: String? = null
    val destination: String? = "Harbor"
    // Scegli e stampa i due valori da visualizzare.
}
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