Operatore di coalescenza nil
Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 14 di 86.
A volte vuoi semplicemente fornire un valore predefinito quando un optional è nil, senza scrivere più righe di codice. L’operatore di coalescenza nil di Swift (??) fa proprio questo. Scarta l’optional se contiene un valore oppure restituisce un valore predefinito se è nil.
let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // GuestPoiché nickname è nil, l’operatore restituisce invece "Guest". Se nickname avesse un valore, verrebbe usato quel valore.
let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoderL’operatore di coalescenza nil è perfetto per le espressioni su una sola riga in cui ti serve un valore di ripiego. È più pulito che scrivere un’istruzione if let quando vuoi semplicemente sostituire nil con un valore predefinito. Il risultato è sempre un valore non opzionale, quindi puoi usarlo direttamente senza doverlo scartare ulteriormente.
Sfida
FacileScrivi una funzione getDisplayName che accetta un username facoltativo e un defaultName, quindi restituisce il nome visualizzato appropriato usando l'operatore di coalescenza nil.
Se lo username è vuoto (rappresentato da una stringa vuota ""), trattalo come nil e restituisci il nome predefinito. Altrimenti, restituisci lo username.
Parametri:
username(String): il nome dell'utente (una stringa vuota rappresenta nil)defaultName(String): il nome di fallback da usare
Valore restituito: lo username se non è vuoto, altrimenti defaultName.
Suggerimento: All'interno della funzione, memorizza lo username in una variabile String? e, se lo username è uguale a "", imposta quella variabile a nil con un semplice if. Poi usa ?? per fornire il fallback.
Provalo tu
func getDisplayName(username: String, defaultName: String) -> String {
// Scrivi il codice qui
}
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 compostaRiepilogo - Matematica sempliceOperatori di confronto7I/O di base
Funzione printInterpolazione di stringheInput con ReadLineConversione di tipoRipasso - Fino a 120Ripasso - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori restituitiEtichette degli argomentiRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti13Iterare sulle sequenze
Iterare sugli elementiIl metodo enumerateIterare sulle stringhe P1Iterare sulle stringhe P22Variabili
Let vs VarAnnotazioni di tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatore ternario8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz3Valori opzionali
Cosa sono i valori opzionaliEstrazione del valore con if letGuard letOperatore di coalescenza nilRiepilogo - Estrazione sicura del valore6Decisioni
Istruzione ifIf - ElseRipasso - Calcolatrice sempliceIstruzione switchSwitch con intervalli9Cicli
Ciclo for-inCiclo whileCiclo repeat-whileBreakContinueRipasso - FattorialeIntervalli nei cicliCiclo annidatoRipasso - Input dinamicoEsercitati da solo: Playground Swift