Come funziona l’inferenza dei tipi
Scopri come Swift deduce i tipi dal contesto.
Come funziona l’inferenza dei tipi è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 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.
Che cos'è l'inferenza dei tipi
Swift può dedurre il tipo di un valore dal contesto di un'espressione. Spesso non è necessario scrivere esplicitamente il tipo.
let count = 42
let name = "Swift"
print(type(of: count))
print(type(of: name))Inferito dai letterali
Un letterale intero viene inferito come Int, un letterale decimale come Double e un letterale racchiuso tra virgolette come String.
let a = 10
let b = 3.14
let c = "hello"
print(type(of: a), type(of: b), type(of: c))Inferito dall'inizializzatore
Quando chiama un inizializzatore, il tipo del risultato determina l'inferenza per la variabile.
let pi = Double.pi
let flag = Bool(true)
print(type(of: pi))
print(type(of: flag))Inferito dal valore restituito dalla funzione
Una variabile assegnata a partire da una chiamata di funzione assume il tipo restituito dalla funzione.
func makeGreeting() -> String {
return "Hi"
}
let g = makeGreeting()
print(type(of: g))Inferenza nelle raccolte
I letterali di array e dizionari deducono i tipi degli elementi dai valori che contengono.
let nums = [1, 2, 3]
let pairs = ["a": 1, "b": 2]
print(type(of: nums))
print(type(of: pairs))Inferenza bidirezionale
Swift esegue l'inferenza in entrambe le direzioni: dal valore alla variabile e dal tipo dichiarato verso il letterale.
let x = 5 // Int inferred from literal
let y: Double = 5 // literal adapts to Double
print(type(of: x), type(of: y))Inferenza tra espressioni
Il compilatore risolve insieme i tipi di un'intera espressione, scegliendo quelli che rendono valide tutte le operazioni.
let result = 2 + 3 * 4
print(result)
print(type(of: result))L'inferenza riduce il rumore
L'inferenza mantiene pulito il codice. Scrivere let names: [String] = [...] è ridondante quando il letterale indica già String.
let names = ["Ada", "Bob", "Cleo"]
print(names.count)Quando l'inferenza fallisce
Se il compilatore non riesce a trovare un unico tipo, segnala un errore e deve aggiungere un'annotazione. Le raccolte vuote sono un caso classico.
let empty: [Int] = []
print(empty.isEmpty)L'inferenza è statica
L'inferenza avviene in fase di compilazione. Una volta inferito, il tipo è fisso: Swift non è tipizzato dinamicamente.
var n = 10
// n = "text" // would be a compile error
n = 20
print(n)Inferenza e prestazioni
L'inferenza non ha alcun costo a runtime. Il compilatore risolve i tipi prima di produrre il binario, quindi il codice con tipi inferiti viene eseguito esattamente alla stessa velocità del codice annotato.
let total = (1...100).reduce(0, +)
print(total)Verifica rapida
Verifichi la Sua comprensione dell'inferenza.
Riepilogo
L'inferenza dei tipi consente a Swift di dedurre i tipi da letterali, inizializzatori, valori restituiti e contesto circostante in fase di compilazione. Riduce il rumore senza alcun costo a runtime, ma fallisce quando non è possibile determinare un unico tipo, ad esempio per le raccolte vuote.
let a = 1
let b = 2.0
let c = "x"
print(type(of: a), type(of: b), type(of: c))Impara Swift con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 122
- Lezioni
- 409
Domande Frequenti
La lezione «Come funziona l’inferenza dei tipi» è gratuita?
Sì — il testo completo di «Come funziona l’inferenza dei tipi» è 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 «Come funziona l’inferenza dei tipi»?
Scopri come Swift deduce i tipi dal contesto. 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 1 di 4.
Quanto tempo richiede la lezione «Come funziona l’inferenza dei tipi»?
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
- Come funziona l’inferenza dei tipi
- Quando aggiungere annotazioni esplicite
- Inferenza con i letterali
- Inferenza nelle closure