0Pricing
Swift Academy · Lezione

Evitare ternari annidati

Mantieni la logica condizionale leggibile e manutenibile.

Evitare ternari annidati è 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.

Quando i ternari sono utili

Un singolo ternario è pulito e leggibile per una scelta semplice tra due possibilità. I problemi iniziano quando si annida un ternario all'interno di un altro.

let temp = 10
let label = temp < 0 ? "Freezing" : "Above zero"
print(label)

Un ternario annidato

È possibile annidare ternari per gestire più di due casi, ma il risultato diventa rapidamente difficile da leggere.

let score = 75
let grade = score >= 90 ? "A" : score >= 80 ? "B" : score >= 70 ? "C" : "F"
print(grade)

Perché l'annidamento è problematico

I ternari annidati obbligano il lettore a tenere mentalmente traccia di quale due punti corrisponda a quale punto interrogativo. Un piccolo errore modifica silenziosamente il comportamento.

Preferisca la chiarezza all'ingegnosità.

let value = 5
let text = value > 0 ? "positive" : value < 0 ? "negative" : "zero"
print(text)

Refactoring in if/else if

La stessa decisione con più possibilità è molto più leggibile come una catena if / else if / else. Ogni ramo si trova sulla propria riga.

let score = 75
let grade: String
if score >= 90 {
    grade = "A"
} else if score >= 80 {
    grade = "B"
} else if score >= 70 {
    grade = "C"
} else {
    grade = "F"
}
print(grade)

Uso alternativo di switch

Per decisioni basate su intervalli, uno switch sugli intervalli è spesso l'opzione più chiara.

let score = 85
let grade: String
switch score {
case 90...100: grade = "A"
case 80..<90: grade = "B"
case 70..<80: grade = "C"
default: grade = "F"
}
print(grade)

Estrazione di una funzione

Quando una decisione viene riutilizzata, la si sposti in una funzione con un nome significativo. Il punto di chiamata diventa autoesplicativo.

func gradeLetter(for score: Int) -> String {
    if score >= 90 { return "A" }
    if score >= 80 { return "B" }
    if score >= 70 { return "C" }
    return "F"
}
print(gradeLetter(for: 64))

Un ternario va bene

La regola non è "non usare mai i ternari". Un singolo ternario semplice per una scelta binaria chiara è perfettamente idiomatico in Swift.

let isAdmin = true
let role = isAdmin ? "Admin" : "User"
print(role)

Leggibilità prima della brevità

Il codice più breve non è sempre il codice migliore. Se chi esamina il codice deve fermarsi per decifrare una riga, preferisca la forma più lunga e chiara.

let stock = 0
let availability = stock > 0 ? "In stock" : "Sold out"
print(availability)

Eviti gli effetti collaterali nei ternari

Mantenga entrambi i rami di un ternario semplici valori. Nascondere in un ternario chiamate di funzione con effetti collaterali rende il codice sorprendente.

let level = 2
let points = level == 1 ? 100 : 200
print(points)

Combinazione con condizioni denominate

Se una condizione è complessa, la memorizzi prima in un Bool con un nome significativo, quindi usi un singolo ternario. Il nome ne chiarisce l'intento.

let age = 20
let hasLicense = true
let eligible = age >= 18 && hasLicense
let result = eligible ? "Approved" : "Denied"
print(result)

Un chiaro esempio con più possibilità

Confronti questa catena if leggibile con il ternario annidato precedente. Entrambi producono lo stesso risultato, ma questa versione è facile da mantenere.

let value = -3
let sign: String
if value > 0 {
    sign = "positive"
} else if value < 0 {
    sign = "negative"
} else {
    sign = "zero"
}
print(sign)

Verifica rapida

Scelga la pratica migliore.

Riepilogo: evitare i ternari annidati

Usi un singolo ternario semplice per le scelte binarie. Per tre o più casi, scelga if/else if o switch. Dia priorità alla leggibilità, così anche in futuro sarà possibile seguire la logica.

let n = 7
let parity = n % 2 == 0 ? "even" : "odd"
print(parity)

Domande Frequenti

La lezione «Evitare ternari annidati» è gratuita?

Sì — il testo completo di «Evitare ternari annidati» è 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 «Evitare ternari annidati»?

Mantieni la logica condizionale leggibile e manutenibile. 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 «Evitare ternari annidati»?

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. Valori ed espressioni Bool
  2. Operatore condizionale ternario
  3. Evitare ternari annidati
  4. Metodi booleani e toggling
← Torna a Swift Academy