Junior — Middle
Was sind die Unterschiede beim Kopieren von Daten für Wert- und Referenztypen?
sobes.tech KI
Antwort von AI
Typen von Wert (value types) und Referenztypen (reference types) unterscheiden sich darin, wie die Datenkopie erfolgt:
- Werttypen: Beim Kopieren wird eine vollständige, unabhängige Kopie der Daten erstellt. Änderungen an der Kopie beeinflussen das Original nicht.
- Referenztypen: Beim Kopieren wird die Referenz auf dasselbe Objekt im Speicher kopiert. Änderungen über eine Referenz spiegeln sich in allen.
In iOS sind beispielsweise Strukturen (struct) Werttypen, und Klassen (class) Referenztypen.
Beispiel in Swift:
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
// p1.x == 0, p2.x == 10 — unabhängige Kopien
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1 = Person(name: "Иван")
var person2 = person1
person2.name = "Пётр"
// person1.name == "Пётр" — beide Referenzen auf dasselbe Objekt