0Pricing
Swift Academy · Lezione

Binding di più optional

Svolgi diversi optional in un’unica condizione.

Binding di più optional è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 3 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.

Binding di più valori insieme

È possibile estrarre il valore di più optional in un unico if let, separandoli con virgole. Tutti devono essere diversi da nil affinché il corpo venga eseguito.

let a: Int? = 1
let b: Int? = 2
if let a, let b {
    print(a + b)
}

Tutto o niente

Se un qualsiasi optional dell'elenco è nil, l'intero blocco viene ignorato. L'estrazione del valore avviene completamente oppure per nulla.

let first: String? = "Ada"
let last: String? = nil
if let first, let last {
    print("\(first) \(last)")
} else {
    print("Missing a name")
}

Forma classica

La forma completa usa assegnazioni esplicite: if let a = optA, let b = optB. La forma abbreviata omette i nomi duplicati.

let optX: Int? = 10
let optY: Int? = 20
if let x = optX, let y = optY {
    print(x * y)
}

Combinazione di binding e condizioni

È possibile alternare condizioni booleane e binding. Le condizioni successive possono usare i valori estratti in precedenza.

let age: Int? = 25
if let age, age >= 18 {
    print("Adult: \(age)")
}

Estrazioni dipendenti

Un binding successivo può dipendere da uno precedente, poiché ogni valore viene estratto procedendo da sinistra verso destra.

let dict = ["key": "42"]
if let text = dict["key"], let number = Int(text) {
    print(number + 8)
}

L'ordine è importante

I binding vengono valutati in ordine e con valutazione short-circuit. Se il primo fallisce, quelli successivi non vengono valutati.

func parse(_ s: String?) -> Int? {
    print("parsing")
    return s.flatMap { Int($0) }
}
let a: Int? = nil
if let a, let b = parse("5") {
    print(a + b)
} else {
    print("skipped")
}

Più valori in guard

Lo stesso stile con valori separati da virgole funziona in guard let, estraendo il valore di più elementi prima di proseguire.

func makeFullName(_ first: String?, _ last: String?) -> String {
    guard let first, let last else { return "Unknown" }
    return "\(first) \(last)"
}
print(makeFullName("Grace", "Hopper"))

Combinazione delle conversioni

Il multi-binding è ideale per analizzare contemporaneamente diversi input di tipo stringa.

let wInput = "4"
let hInput = "5"
if let w = Int(wInput), let h = Int(hInput) {
    print("Area: \(w * h)")
}

Evitare gli if let annidati

Senza il multi-binding sarebbe necessario annidare blocchi if let, creando una piramide. La forma con le virgole la rende lineare.

let p: Int? = 2
let q: Int? = 3
if let p {
    if let q {
        print(p + q)
    }
}

Versione lineare

Questa è la stessa logica dell'esempio annidato precedente, riscritta in forma lineare con un unico multi-binding.

let p: Int? = 2
let q: Int? = 3
if let p, let q {
    print(p + q)
}

Con una condizione finale

È possibile concludere con un controllo booleano che convalida il risultato combinato.

let xs = "3"
let ys = "9"
if let x = Int(xs), let y = Int(ys), x < y {
    print("\(x) is less than \(y)")
}

Controllo rapido

Metta alla prova il binding di più optional.

Riepilogo: binding di più optional

Estragga il valore di diversi optional in un unico if let o guard let usando le virgole. L'operazione è tutto o niente, viene valutata da sinistra verso destra, supporta binding dipendenti e può includere condizioni booleane.

let a: Int? = 1
let b: Int? = 2
if let a, let b { print(a + b) }

Domande Frequenti

La lezione «Binding di più optional» è gratuita?

Sì — il testo completo di «Binding di più optional» è 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 «Binding di più optional»?

Svolgi diversi optional in un’unica condizione. 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 3 di 4.

Quanto tempo richiede la lezione «Binding di più optional»?

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

  1. if let e binding abbreviato
  2. guard let per l’uscita anticipata
  3. Binding di più optional
  4. Pattern degli optional in switch e for
← Torna a Swift Academy