0Pricing
Swift Academy · Lektion

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, 9

Eigenschaften

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)  // 12

Beobachter

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 = 5

Initialisierer

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 run

Frage 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

  1. Structs vs. Klassen, Properties und Initializer
  2. Gespeicherte und berechnete Properties, Observer
  3. Initializer und deinit (Klassen)
← Zurück zu Swift Academy