Sådan fungerer type inference
Se, hvordan Swift udleder typer ud fra konteksten.
Sådan fungerer type inference er en gratis Swift Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Swift Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Swift Academy-kurset indeholder 4 lektioner i alt.
Hvad er typeudledning
Swift kan udlede typen af en værdi ud fra konteksten for et udtryk. Du behøver ofte ikke skrive typen eksplicit.
let count = 42
let name = "Swift"
print(type(of: count))
print(type(of: name))Udledning fra literaler
Et heltalsliteral udleder Int, et decimalliteral udleder Double, og et literal i anførselstegn udleder String.
let a = 10
let b = 3.14
let c = "hello"
print(type(of: a), type(of: b), type(of: c))Udledning fra en initialisator
Når du kalder en initialisator, bestemmer resultattypen variablens type.
let pi = Double.pi
let flag = Bool(true)
print(type(of: pi))
print(type(of: flag))Udledning fra en funktionsreturværdi
En variabel, der får tildelt resultatet af et funktionskald, får funktionens returtype.
func makeGreeting() -> String {
return "Hi"
}
let g = makeGreeting()
print(type(of: g))Typeudledning i samlinger
Literaler for arrays og ordbøger udleder deres elementtyper fra værdierne indeni.
let nums = [1, 2, 3]
let pairs = ["a": 1, "b": 2]
print(type(of: nums))
print(type(of: pairs))Tovejs typeudledning
Swift udleder typer i begge retninger: fra værdien til variablen og fra en erklæret type tilbage til et literal.
let x = 5 // Int inferred from literal
let y: Double = 5 // literal adapts to Double
print(type(of: x), type(of: y))Typeudledning på tværs af udtryk
Kompileren løser typerne for et helt udtryk samlet og vælger typer, der gør alle operationer gyldige.
let result = 2 + 3 * 4
print(result)
print(type(of: result))Typeudledning reducerer støj
Typeudledning holder koden ren. Det er overflødigt at skrive let names: [String] = [...], når literalen allerede angiver String.
let names = ["Ada", "Bob", "Cleo"]
print(names.count)Når typeudledning mislykkes
Hvis kompileren ikke kan finde én enkelt type, får du en fejl og skal angive typen. Tomme samlinger er et klassisk eksempel.
let empty: [Int] = []
print(empty.isEmpty)Typeudledning er statisk
Typeudledning sker under kompilering. Når typen først er udledt, er den fast, og Swift er ikke dynamisk typet.
var n = 10
// n = "text" // would be a compile error
n = 20
print(n)Typeudledning og ydeevne
Typeudledning har ingen omkostning under kørsel. Kompileren bestemmer typerne, før binærfilen oprettes, så kode med udledte typer kører præcis lige så hurtigt som kode med angivne typer.
let total = (1...100).reduce(0, +)
print(total)Hurtigt tjek
Test din forståelse af typeudledning.
Opsummering
Typeudledning lader Swift udlede typer fra literaler, initialisatorer, returværdier og den omgivende kontekst under kompilering. Det reducerer støj uden omkostninger under kørsel, men mislykkes, når der ikke kan bestemmes én enkelt type, f.eks. for tomme samlinger.
let a = 1
let b = 2.0
let c = "x"
print(type(of: a), type(of: b), type(of: c))Lær Swift med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 122
- Lektioner
- 409
Ofte stillede spørgsmål
Er lektionen “Sådan fungerer type inference” gratis?
Ja — alle 3 lektioner i læringssporet Swift Academy, inklusive “Sådan fungerer type inference”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Swift Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Sådan fungerer type inference”?
Se, hvordan Swift udleder typer ud fra konteksten. Du øver dig i Swift Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Swift Academy?
Der kræves ingen tidligere erfaring. Swift Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Sådan fungerer type inference”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Swift Academy-lektion?
Ja. Alle Swift Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Sådan fungerer type inference
- Hvornår skal De tilføje eksplicitte annotations
- Inference med litteraler
- Inference i closures