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.