Funktionsweise der Typinferenz
Sehen Sie, wie Swift Typen aus dem Kontext ableitet.
Funktionsweise der Typinferenz ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist Typinferenz
Swift kann den Typ eines Werts aus dem Kontext eines Ausdrucks ableiten. Häufig müssen Sie den Typ nicht explizit angeben.
let count = 42
let name = "Swift"
print(type(of: count))
print(type(of: name))Aus Literalen abgeleitet
Ein Ganzzahlliteral wird als Int abgeleitet, ein Dezimalliteral als Double und ein Literal in Anführungszeichen als String.
let a = 10
let b = 3.14
let c = "hello"
print(type(of: a), type(of: b), type(of: c))Aus dem Initialisierer abgeleitet
Wenn Sie einen Initialisierer aufrufen, bestimmt der Ergebnistyp die Inferenz für die Variable.
let pi = Double.pi
let flag = Bool(true)
print(type(of: pi))
print(type(of: flag))Aus dem Funktionsrückgabewert abgeleitet
Eine Variable, der das Ergebnis eines Funktionsaufrufs zugewiesen wird, übernimmt den Rückgabetyp der Funktion.
func makeGreeting() -> String {
return "Hi"
}
let g = makeGreeting()
print(type(of: g))Inferenz in Collections
Array- und Dictionary-Literale leiten ihre Elementtypen aus den enthaltenen Werten ab.
let nums = [1, 2, 3]
let pairs = ["a": 1, "b": 2]
print(type(of: nums))
print(type(of: pairs))Bidirektionale Inferenz
Swift leitet Typen in beide Richtungen ab: vom Wert zur Variable und von einem deklarierten Typ zurück in ein Literal.
let x = 5 // Int inferred from literal
let y: Double = 5 // literal adapts to Double
print(type(of: x), type(of: y))Inferenz über Ausdrücke hinweg
Der Compiler löst die Typen eines gesamten Ausdrucks gemeinsam und wählt Typen aus, die alle Operationen gültig machen.
let result = 2 + 3 * 4
print(result)
print(type(of: result))Inferenz reduziert unnötigen Code
Inferenz hält den Code übersichtlich. let names: [String] = [...] zu schreiben ist redundant, wenn das Literal bereits String erkennen lässt.
let names = ["Ada", "Bob", "Cleo"]
print(names.count)Wenn die Inferenz fehlschlägt
Wenn der Compiler keinen eindeutigen Typ finden kann, erhalten Sie einen Fehler und müssen eine Typannotation angeben. Leere Collections sind ein klassischer Fall.
let empty: [Int] = []
print(empty.isEmpty)Inferenz ist statisch
Die Inferenz findet zur Kompilierzeit statt. Sobald der Typ abgeleitet wurde, steht er fest; Swift ist nicht dynamisch typisiert.
var n = 10
// n = "text" // would be a compile error
n = 20
print(n)Inferenz und Leistung
Inferenz verursacht keine Laufzeitkosten. Der Compiler löst die Typen vor der Erstellung der Binärdatei auf, sodass Code mit Inferenz genauso schnell ausgeführt wird wie annotierter Code.
let total = (1...100).reduce(0, +)
print(total)Kurztest
Testen Sie Ihr Verständnis der Typinferenz.
Zusammenfassung
Typinferenz ermöglicht es Swift, Typen zur Kompilierzeit aus Literalen, Initialisierern, Rückgabewerten und dem umgebenden Kontext abzuleiten. Sie reduziert unnötigen Code ohne Laufzeitkosten, schlägt aber fehl, wenn kein eindeutiger Typ bestimmt werden kann, etwa bei leeren Collections.
let a = 1
let b = 2.0
let c = "x"
print(type(of: a), type(of: b), type(of: c))Häufig gestellte Fragen
Ist die Lektion „Funktionsweise der Typinferenz“ kostenlos?
Ja — der vollständige Text von „Funktionsweise der Typinferenz“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Funktionsweise der Typinferenz“?
Sehen Sie, wie Swift Typen aus dem Kontext ableitet. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Funktionsweise der Typinferenz“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Funktionsweise der Typinferenz
- Wann explizite Annotationen sinnvoll sind
- Inferenz bei Literalen
- Inferenz in Closures