Funzioni e tipi generici
Scriva funzioni e tipi generici con parametri di tipo (ad esempio, ). Osservi come il compilatore inferisce i tipi e mantiene il codice sicuro e riutilizzabile.
Funzioni e tipi generici è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. 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 3 lezioni in totale.
Perché i generics?
I generics Le consentono di scrivere un'unica funzione o un unico tipo che funzioni con molti tipi, mantenendo la sicurezza dei tipi. Vedrà <T> per i parametri di tipo e come l'inferenza renda semplici le chiamate.
Funzione generica
Una funzione generica utilizza un parametro di tipo (<T>). Il compilatore verifica i tipi a ogni chiamata.
// Generic swap for any type T
func swapValues<T>(_ a: inout T, _ b: inout T) {
let temp = a
a = b
b = temp
}
var x = 1, y = 2
swapValues(&x, &y)
print(x, y) // 2 1
var s1 = "A", s2 = "B"
swapValues(&s1, &s2)
print(s1, s2) // B ATipo generico
Anche i tipi possono essere generici: dichiari Stack<Element> e lo riutilizzi per Int, String e altri tipi.
// A minimal generic stack
struct Stack<Element> {
private var items: [Element] = []
mutating func push(_ x: Element) { items.append(x) }
mutating func pop() -> Element? { items.popLast() }
var top: Element? { items.last }
}
var intStack = Stack<Int>()
intStack.push(10); intStack.push(20)
print(intStack.top ?? -1) // 20
var textStack = Stack<String>()
textStack.push("hi"); textStack.push("bye")
print(textStack.pop() ?? "?")Inferenza dei tipi
Swift spesso inferisce i tipi generici, quindi raramente deve specificarli esplicitamente nelle chiamate.
// The compiler infers T from arguments/assignments
func makePair<T>(_ a: T, _ b: T) -> (T, T) { (a, b) }
let pair1 = makePair(1, 2) // T inferred as Int
let pair2 = makePair("a", "b") // T inferred as String
print(pair1, pair2)Evitare la duplicazione
Senza i generics, dovrebbe ripetere il codice per ogni tipo. I generics eliminano la duplicazione mantenendo i controlli statici.
// Non-generic overloads would duplicate logic:
func eqInt(_ a: Int, _ b: Int) -> Bool { a == b }
func eqStr(_ a: String, _ b: String) -> Bool { a == b }
// A single generic can replace both:Note e denominazione
Note:
- Utilizzi nomi chiari: T, Element o nomi specifici del dominio.
- Mantenga le API piccole e focalizzate.
- Passo successivo: aggiunga vincoli con where per limitare T quando necessario.
Significato di <T>
Verifica rapida: che cosa significa <T> in una funzione generica?
Riepilogo
Riepilogo: definisca funzioni generiche con <T> e costruisca tipi generici come Stack<Element>. Swift inferisce i tipi nelle chiamate, mantenendo il codice riutilizzabile e sicuro.
Domande Frequenti
La lezione «Funzioni e tipi generici» è gratuita?
Sì — il testo completo di «Funzioni e tipi generici» è 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 3 lezioni in totale.
Cosa imparerò in «Funzioni e tipi generici»?
Scriva funzioni e tipi generici con parametri di tipo (ad esempio, ). Osservi come il compilatore inferisce i tipi e mantiene il codice sicuro e riutilizzabile. 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 3.
Quanto tempo richiede la lezione «Funzioni e tipi generici»?
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
- Funzioni e tipi generici
- Vincoli (where), inferenza dei tipi
- Algoritmi generici sulle collezioni