Structs vs. Klassen, Properties und Initializer
Vergleichen Sie Wert- und Referenzsemantik, verwenden Sie gespeicherte und berechnete Properties sowie Property-Observer und Initializer und verstehen Sie class deinit.
Structs vs. Klassen, Properties und Initializer ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. 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 3 Lektionen.
Überblick
Swift hat zwei wichtige zusammengesetzte Typen: struct (Wert) und class (Referenz).
- Structs werden bei der Zuweisung kopiert
- Klassen teilen sich Referenzen
Wert oder Referenz
Structs kopieren Werte; Klassen teilen sich Referenzen. Eine Änderung an b wirkt sich nicht auf a aus, eine Änderung an d jedoch auf c.
struct Point { var x = 0, y = 0 }
class CPoint { var x = 0, y = 0 }
var a = Point(x: 1, y: 1)
var b = a // copy
b.x = 9
print("struct a.x =", a.x, "b.x =", b.x) // 1, 9
let c = CPoint(); c.x = 1
let d = c // same reference
d.x = 9
print("class c.x =", c.x, "d.x =", d.x) // 9, 9Eigenschaften
Gespeicherte Eigenschaften enthalten Daten; berechnete Eigenschaften leiten Werte beim Zugriff ab.
struct Rectangle {
var width: Double // stored
var height: Double // stored
var area: Double { // computed
return width * height
}
}
let r = Rectangle(width: 3, height: 4)
print(r.area) // 12Beobachter
Verwenden Sie willSet/didSet, um Änderungen an gespeicherten Eigenschaften zu beobachten.
struct Counter {
var value: Int = 0 {
willSet { print("will set to", newValue) }
didSet { print("did set from", oldValue) }
}
}
var cnt = Counter()
cnt.value = 5Initialisierer
Structs erhalten einen Memberwise-Initialisierer. Klassen definieren init (designated) und können zusätzliche convenience-Initialisierer anbieten.
struct User {
var name: String
// memberwise init is synthesized: User(name:)
}
class Person {
var name: String
init(name: String) { // designated
self.name = name
}
convenience init() { // convenience
self.init(name: "Guest")
}
}
let u = User(name: "Ada")
let p = Person()
print(u.name, p.name)deinit
Nur Klassen besitzen deinit. Es wird aufgerufen, wenn die Instanz freigegeben wird (ARC).
class Temp {
let id: Int
init(id: Int) { self.id = id }
deinit { print("Temp \\(id) deinit") }
}
do {
let t = Temp(id: 1)
print("using", t.id)
} // t goes out of scope and deinit may runFrage zu Structs und Klassen
Kurztest: Welche Aussage beschreibt den Unterschied zwischen Structs und Klassen korrekt?
Zusammenfassung
Zusammenfassung: Bevorzugen Sie struct für einfache Daten (Wertsemantik). Verwenden Sie class für gemeinsame Identität, Vererbung und deinit. Fügen Sie gespeicherte und berechnete Eigenschaften, Beobachter sowie passende Initialisierer hinzu.
Häufig gestellte Fragen
Ist die Lektion „Structs vs. Klassen, Properties und Initializer“ kostenlos?
Ja — der vollständige Text von „Structs vs. Klassen, Properties und Initializer“ 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 3 Lektionen.
Was lerne ich in „Structs vs. Klassen, Properties und Initializer“?
Vergleichen Sie Wert- und Referenzsemantik, verwenden Sie gespeicherte und berechnete Properties sowie Property-Observer und Initializer und verstehen Sie class deinit. 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 3.
Wie lange dauert die Lektion „Structs vs. Klassen, Properties und Initializer“?
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
- Structs vs. Klassen, Properties und Initializer
- Gespeicherte und berechnete Properties, Observer
- Initializer und deinit (Klassen)