Operatore nil-coalescing
Fornisci un valore predefinito quando un optional è nil.
Operatore nil-coalescing è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 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 Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.
Il problema di nil
Un optional può contenere un valore oppure essere nil. Spesso si desidera usare il valore quando è presente, oppure ricorrere a un valore predefinito quando è nil.
let typedName: String? = nil
let name = typedName ?? "Guest"
print(name)L'operatore ??
L'operatore di coalescenza di nil ?? prende un optional a sinistra e un valore predefinito a destra. Se l'optional non è nil, si ottiene il suo valore estratto; altrimenti si ottiene il valore predefinito.
let stored: Int? = 42
let value = stored ?? 0
print(value)Il valore predefinito viene usato solo con nil
Il valore predefinito a destra viene usato solo quando il lato sinistro è nil. Un valore presente, anche 0 o una stringa vuota, viene mantenuto.
let count: Int? = 0
let result = count ?? 99
print(result)Il risultato non è un optional
L'espressione optional ?? default produce un valore non optional, perché c'è sempre un valore di riserva.
let nickname: String? = nil
let display: String = nickname ?? "Anonymous"
print(display)Sostituire if let
Senza ?? si dovrebbe scrivere un if/else per estrarre il valore e fornire un valore predefinito. La coalescenza di nil riunisce tutto in un'unica espressione.
let age: Int? = nil
var finalAge: Int
if let unwrapped = age {
finalAge = unwrapped
} else {
finalAge = 18
}
print(finalAge)La stessa logica con ??
Ecco l'esempio precedente riscritto con la coalescenza di nil. È più breve e l'intento è evidente.
let age: Int? = nil
let finalAge = age ?? 18
print(finalAge)Coalescenza nell'interpolazione
Può inserire direttamente ?? nell'interpolazione di stringhe per visualizzare un valore di riserva comprensibile.
let city: String? = nil
print("City: \(city ?? "Unknown")")Dalle conversioni che possono fallire
La conversione da String a Int restituisce un optional. La coalescenza di nil fornisce un valore predefinito quando il testo non è un numero.
let text = "abc"
let number = Int(text) ?? -1
print(number)Coalescenza con i dizionari
La ricerca di una chiave in un dizionario restituisce un optional. Usi ?? per fornire un valore di riserva quando la chiave non esiste.
let scores = ["Ann": 90]
let bob = scores["Bob"] ?? 0
print(bob)Il valore predefinito può essere calcolato
Il lato destro può contenere qualsiasi espressione del tipo corretto, persino una chiamata di funzione. L'espressione viene valutata solo quando serve.
func defaultName() -> String {
return "Player1"
}
let entered: String? = nil
print(entered ?? defaultName())I tipi devono corrispondere
Il valore predefinito deve essere compatibile con il tipo contenuto nell'optional. Un Int? richiede un valore predefinito di tipo Int.
let maybe: Int? = nil
let safe = maybe ?? 100
print(safe + 1)Verifica rapida
Provi la coalescenza di nil.
Riepilogo: l'operatore di coalescenza di nil
L'operatore ?? estrae il valore da un optional oppure ricorre a un valore predefinito, producendo un risultato non optional. Il valore predefinito viene usato solo quando l'optional è nil.
let input: String? = nil
let name = input ?? "Default"
print(name)Domande Frequenti
La lezione «Operatore nil-coalescing» è gratuita?
Sì — il testo completo di «Operatore nil-coalescing» è 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 Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.
Cosa imparerò in «Operatore nil-coalescing»?
Fornisci un valore predefinito quando un optional è nil. Eserciti Swift 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 Swift Academy?
Non è richiesta alcuna esperienza precedente. Swift 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 1 di 4.
Quanto tempo richiede la lezione «Operatore nil-coalescing»?
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 Swift Academy?
Sì. Ogni lezione Swift 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
- Operatore nil-coalescing
- concatenamento dei valori predefiniti
- Valori predefiniti nei parametri delle funzioni
- Subscript predefiniti dei dizionari