0Pricing
Kotlin Academy · Lezione

Safe call ed Elvis

Operatori ?. e ?:

Safe call ed Elvis è una lezione Kotlin Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kotlin Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kotlin Academy include 4 lezioni in totale.

Gestire i nullable in modo chiaro

Scrivere if (x != null) ovunque diventa prolisso. Kotlin offre due operatori concisi per i valori nullable:

  • la chiamata sicura ?.
  • l'operatore Elvis ?:

L'operatore di chiamata sicura

La chiamata sicura ?. chiama un metodo o legge una proprietà solo se il valore non è null. In caso contrario, l'intera espressione restituisce null.

Nessun crash e nessun controllo esplicito.

fun main() {
    val name: String? = "Kotlin"
    println(name?.length)
}

Chiamata sicura su null

Quando il ricevitore è null, la chiamata sicura interrompe la valutazione e restituisce null invece di generare un'eccezione.

Questa è la differenza fondamentale rispetto a una normale chiamata con il punto.

fun main() {
    val name: String? = null
    println(name?.length)
}

Concatenare le chiamate sicure

È possibile concatenare le chiamate sicure. Se un qualsiasi elemento della catena è null, l'intero risultato diventa null.

In questo modo si evitano controlli null annidati in profondità.

fun main() {
    val text: String? = "hello world"
    val result = text?.uppercase()?.substring(0, 5)
    println(result)
}

L'operatore Elvis

L'operatore Elvis ?: fornisce un valore alternativo quando il lato sinistro è null.

Lo si può leggere così: utilizzi il valore a sinistra oppure quello a destra.

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

Elvis con un valore reale

Se il lato sinistro non è null, l'operatore Elvis lo restituisce semplicemente e ignora il valore alternativo.

Il valore alternativo viene utilizzato solo quando il valore non è disponibile.

fun main() {
    val name: String? = "Sam"
    val display = name ?: "Guest"
    println(display)
}

Combinare la chiamata sicura e Elvis

Questi operatori vengono spesso utilizzati insieme. Una chiamata sicura può produrre null e Elvis fornisce un valore predefinito.

Questa è una delle espressioni idiomatiche Kotlin più comuni.

fun main() {
    val name: String? = null
    val length = name?.length ?: 0
    println(length)
}

Elvis per il ritorno anticipato

Il lato destro di Elvis può essere return o throw. È un modo chiaro per uscire subito quando manca un valore.

Se id è null, la funzione restituisce immediatamente il controllo.

fun process(id: String?) {
    val safeId = id ?: return
    println("Processing " + safeId)
}

fun main() {
    process("A-100")
    process(null)
    println("done")
}

Chiamata sicura con let

Combini ?. con let per eseguire un blocco solo quando il valore non è null.

All'interno del blocco, it fa riferimento al valore non nullo.

fun main() {
    val name: String? = "Kotlin"
    name?.let {
        println("Length is " + it.length)
    }
}

Numeri predefiniti con Elvis

Elvis è utile per convertire numeri nullable in valori predefiniti sicuri prima di eseguire operazioni aritmetiche.

In questo caso, un conteggio null diventa 0, così i calcoli funzionano sempre.

fun main() {
    val count: Int? = null
    val total = (count ?: 0) + 5
    println(total)
}

Mettere tutto insieme

Insieme, questi operatori sostituiscono i controlli null più ingombranti:

  • ?. chiama il metodo solo quando il valore non è null
  • ?: fornisce un valore alternativo quando il valore è null
  • La concatenazione e let rendono concisi i flussi complessi
fun main() {
    val input: String? = null
    val name = input?.trim()?.uppercase() ?: "UNKNOWN"
    println(name)
}

Verifica rapida

Verifichi la comprensione delle chiamate sicure e dell'operatore Elvis.

Riepilogo

Ha imparato a conoscere i due operatori essenziali per la gestione dei valori nullable:

  • Chiamata sicura ?. restituisce null invece di causare un arresto anomalo
  • Elvis ?: fornisce un valore alternativo
  • Si combinano facilmente con let e le restituzioni anticipate

Successivamente vedrà l'operatore !! e capirà perché deve essere usato con cautela.

Domande Frequenti

La lezione «Safe call ed Elvis» è gratuita?

Sì — il testo completo di «Safe call ed Elvis» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kotlin Academy, passa a CoddyKit PRO. Il corso Kotlin Academy include 4 lezioni in totale.

Cosa imparerò in «Safe call ed Elvis»?

Operatori ?. e ?: Eserciti Kotlin Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Kotlin Academy?

Non è richiesta alcuna esperienza precedente. Kotlin Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Safe call ed Elvis»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Kotlin Academy?

Sì. Ogni lezione Kotlin Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Tipi nullable e non-null
  2. Safe call ed Elvis
  3. L'operatore !!
  4. Platform type
← Torna a Kotlin Academy