Menu
Coddy logo textTech

Guard let

Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 13 di 86.

Mentre if let scarta un valore opzionale ed esegue il codice quando è presente un valore, guard let adotta l’approccio opposto. Esce in anticipo quando manca un valore. È particolarmente utile all’interno delle funzioni quando vuoi gestire prima il caso «negativo» e mantenere pulita la logica principale.

func greet(name: String?) {
    guard let unwrappedName = name else {
        print("No name provided")
        return
    }
    print("Hello, \(unwrappedName)!")
}

greet(name: "Taylor") // Ciao, Taylor!
greet(name: nil)      // Nessun nome fornito

L'istruzione guard let verifica se name ha un valore. Se non ne ha, viene eseguito il blocco else e la funzione termina con return. Se l'opzionale contiene un valore, questo viene estratto in unwrappedName, ed ecco la differenza fondamentale rispetto a if let: la variabile estratta resta disponibile per il resto della funzione, non solo all'interno di un blocco.

Questo schema di «uscita anticipata» mantiene il codice leggibile gestendo subito i casi di errore, così la logica principale non è annidata in più istruzioni if.

challenge icon

Sfida

Facile
Scrivi una funzione validateAge che accetta un parametro age facoltativo e usa guard let per estrarne il valore in modo sicuro.

Se l'età è nil, restituisci "Invalid age". Altrimenti, restituisci "Age: [value]", dove [value] è l'età estratta.

Parametri:

  • age (Int?): un intero facoltativo che rappresenta l'età di una persona

Valore restituito: una stringa: "Invalid age" se l'input è nil, oppure "Age: [value]" con il valore estratto.

Esempio: se age è 25, restituisci "Age: 25". Se age è nil, restituisci "Invalid age".

Provalo tu

func validateAge(age: Int) -> String {
    // Scrivi il codice qui
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Swift