Sobes.tech
Junior

Was bedeutet die Kopierübertragung?

sobes.tech KI

Antwort von AI

Beim Übergabe durch Kopie (pass by value) an eine Funktion wird eine Kopie des Werts der Variablen übergeben, nicht eine Referenz auf das Original. Änderungen, die am Parameter innerhalb der Funktion vorgenommen werden, beeinflussen die ursprüngliche Variable außerhalb der Funktion nicht.

Für Strukturen und Aufzählungen in Swift wird standardmäßig die Kopie-Übergabe verwendet. Für Klassen erfolgt die Übergabe per Referenz (pass by reference), aber in diesem Fall wird eine Kopie der Referenz selbst übergeben, nicht des Objekts.

Beispiel in Swift:

// Struktur Customer
struct Customer {
    var name: String
}

// Funktion, die den Parameter vom Typ Customer ändert
func changeCustomerName(customer: Customer) {
    var modifiedCustomer = customer // Es wird eine Kopie der Struktur erstellt
    modifiedCustomer.name = "Jane"
    print("Innerhalb der Funktion: \(modifiedCustomer.name)") // Ausgabe: Innerhalb der Funktion: Jane
}

var myCustomer = Customer(name: "John")
print("Vor der Funktion: \(myCustomer.name)") // Ausgabe: Vor der Funktion: John

changeCustomerName(customer: myCustomer)

print("Nach der Funktion: \(myCustomer.name)") // Ausgabe: Nach der Funktion: John - der ursprüngliche Wert hat sich nicht geändert

Wesentlicher Punkt: Die Funktion arbeitet mit einer lokalen Kopie der Daten.