Cosa sono i valori opzionali
Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 11 di 86.
A volte una variabile potrebbe non avere alcun valore. In Swift, rappresentiamo l'assenza di un valore usando gli optional. Un optional dice «c'è un valore, ed è uguale a x» oppure «non c'è proprio alcun valore».
Per dichiarare un tipo opzionale, aggiungi un punto interrogativo ? dopo il tipo:
var nickname: String? = "Alex"
var age: Int? = nilNell'esempio sopra, nickname contiene il valore "Alex", mentre age contiene nil: il modo di Swift per dire «nessun valore». Le variabili normali non possono essere nil, ma gli optional sì.
Pensa a un optional come a una scatola che potrebbe contenere qualcosa oppure essere vuota. Prima di usare ciò che c’è dentro, devi controllare se c’è davvero qualcosa. Questa è una funzionalità di sicurezza fondamentale in Swift che aiuta a prevenire arresti anomali dovuti a valori mancanti imprevisti.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilNota che quando stampi un optional con un valore, mostra Optional(100) invece di 100. Per accedere al valore effettivo contenuto, devi scartare l'optional, cosa che vedremo nelle prossime lezioni.
Sfida
FacileScrivi una funzione createOptional che accetta un numero e restituisce una stringa che mostra come apparirebbe quel numero quando viene stampato come optional.
Importante: questa funzione restituisce una String. Stai scrivendo del testo che ha l’aspetto di un optional, non stai restituendo un vero valore optional.
Quando stampi un optional che contiene un valore, Swift lo visualizza nel formato Optional(value).
Promemoria sulla sintassi delle funzioni: in Swift, una funzione che restituisce un valore usa la freccia -> per specificare il tipo restituito e la parola chiave return per restituire il risultato. Per esempio:
func myFunction(param: Int) -> String {<br> return "result"<br>}
Puoi creare la stringa restituita usando l’interpolazione di stringhe: "Optional(\(value))": la parte \(value) inserisce il numero direttamente nella stringa.
Parametri:
value(Int): il numero da racchiudere nel formato optional
Restituisce: una stringa nel formato Optional(value), dove value è il numero fornito.
Esempio: se l’input è 100, restituisci "Optional(100)"
Provalo tu
func createOptional(value: Int) -> String {
// Restituisci una String che sembri un optional, non un vero optional
// Inserisci il numero tra le parentesi usando l'interpolazione di stringhe
return "Optional()"
}
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