Sobes.tech
Junior

Wat betekent overdracht per kopie?

sobes.tech AI

Antwoord van AI

Bij pass by value wordt een kopie van de waarde van de variabele doorgegeven aan een functie, niet een verwijzing naar het origineel. Wijzigingen die binnen de functie aan de parameter worden aangebracht, beïnvloeden de oorspronkelijke variabele buiten de functie niet.

Voor structs en enumeraties in Swift wordt standaard pass by copy gebruikt. Voor klassen wordt pass by reference gebruikt, maar in dat geval wordt een kopie van de verwijzing zelf doorgegeven, niet van het object.

Voorbeeld in Swift:

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

// Functie die de parameter van type Customer wijzigt
func changeCustomerName(customer: Customer) {
    var modifiedCustomer = customer // Er wordt een kopie van de structuur gemaakt
    modifiedCustomer.name = "Jane"
    print("Binnen de functie: \(modifiedCustomer.name)") // Output: Binnen de functie: Jane
}

var myCustomer = Customer(name: "John")
print("Voor de functie: \(myCustomer.name)") // Output: Voor de functie: John

changeCustomerName(customer: myCustomer)

print("Na de functie: \(myCustomer.name)") // Output: Na de functie: John - de oorspronkelijke waarde is niet veranderd

Belangrijk punt: de functie werkt met een lokale kopie van de gegevens.