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).