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.
Sfida
FacileUn 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.
}
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