Sobes.tech
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