Junior
Ce înseamnă transferul prin copie?
sobes.tech AI
Răspuns de la AI
Când se face transfer prin copie (pass by value) către o funcție, se transmite o copie a valorii variabilei, nu o referință la original. Modificările făcute asupra parametrului în interiorul funcției nu afectează variabila originală din afara acesteia.
Pentru structuri și enumerări în Swift, se folosește implicit transferul prin copie. Pentru clase, se folosește transferul prin referință (pass by reference), dar în acest caz, se transmite o copie a referinței, nu a obiectului.
Exemplu în Swift:
// Structura Customer
struct Customer {
var name: String
}
// Funcție care modifică parametrul de tip Customer
func changeCustomerName(customer: Customer) {
var modifiedCustomer = customer // Se creează o copie a structurii
modifiedCustomer.name = "Jane"
print("În interiorul funcției: \(modifiedCustomer.name)") // Output: În interiorul funcției: Jane
}
var myCustomer = Customer(name: "John")
print("Înainte de funcție: \(myCustomer.name)") // Output: Înainte de funcție: John
changeCustomerName(customer: myCustomer)
print("După funcție: \(myCustomer.name)") // Output: După funcție: John - valoarea originală nu s-a schimbat
Aspect important: funcția lucrează cu o copie locală a datelor.