Sobes.tech
Junior

Mit welchen Datentypen können in Swift Referenzen verwendet werden?

sobes.tech KI

Antwort von AI

In Swift werden Referenzen (zu Adressen) verwendet bei:

  1. Klassen (Classes): Instanzen von Klassen sind Referenztypen. Wenn eine Klasseninstanz einer Variablen oder Konstante zugewiesen wird, wird die Referenz auf das Objekt kopiert, nicht das Objekt selbst.
  2. Closures (Abschlüsse): Die Variablenspeicherung in einem Closure erfolgt per Referenz.
  3. Actors (Akteure): Die Instanzen von Akteuren sind ebenfalls Referenztypen.
  4. Einige Systemtypen: Zum Beispiel AnyObject, NSObject und Typen aus dem Core Foundation Set (wie CFString).
  5. Eingabe-/Ausgabeparameter (inout): Ermöglichen es, Variablen per Referenz an eine Funktion zu übergeben, damit die Funktion ihren Wert ändern kann.
// Beispiel mit Klasse
class MyClass {
    var value = 10
}

let instance1 = MyClass()
let instance2 = instance1 // instance2 verweist auf dasselbe Objekt
instance2.value = 20
print(instance1.value) // Gibt 20 aus

// Beispiel mit inout
func modifyValue(value: inout Int) {
    value = value * 2
}

var myInt = 5
modifyValue(value: &myInt)
print(myInt) // Gibt 10 aus

Strukturen, Aufzählungen und Tupel sind Werttypen, und beim Zuweisen oder Übergeben wird deren Inhalt kopiert, nicht die Referenz.