Sobes.tech
Junior

Was sind Referenztypen?

sobes.tech KI

Antwort von AI

Referenztypen (Reference Types) sind Datentypen, die beim Zuweisen oder Übergeben an eine Funktion eine Referenz auf die Instanz des Objekts im Speicher übertragen, nicht eine Kopie davon.

Wichtige Merkmale:

  • Mehrere Variablen können auf dieselbe Instanz eines Objekts verweisen.
  • Änderungen am Zustand des Objekts über eine Referenz wirken sich auf alle anderen Referenzen auf dasselbe Objekt aus.
  • Die Arbeit mit Referenztypen erfolgt über Zeiger auf Objekte im Heap.

Beispiele für Referenztypen in Swift:

  • Klassen (class)
  • Funktionen (func)
  • Closures ({...})

Vergleich mit Werttypen (Value Types):

Merkmal Referenztyp (Reference Type) Werttyp (Value Type)
Was übertragen wird Referenz (Adresse im Speicher) Kopie des Werts
Speicherort Heap Stack
Kopieren Referenz wird kopiert Wert wird kopiert
Änderung Beeinflusst das Originalobjekt Beeinflusst die Kopie
class MyClass {
    var value: Int

    init(value: Int) {
        self.value = value
    }
}

var object1 = MyClass(value: 10) // Erstellen einer Klasseninstanz
var object2 = object1          // object2 verweist jetzt auf dieselbe Instanz wie object1

print(object1.value) // Ausgabe: 10
print(object2.value) // Ausgabe: 10

object2.value = 20 // Ändert den Wert über object2

print(object1.value) // Ausgabe: 20 (Änderung über object2 beeinflusst object1)
print(object2.value) // Ausgabe: 20

Das Speicher-Management für Referenztypen in Swift erfolgt durch Automatic Reference Counting (ARC).