Sobes.tech
Junior

Čo znamená prevod podľa kópie?

sobes.tech AI

Odpoveď od AI

Pri prenose pomocou kopie (pass by value) do funkcie sa prenáša kópia hodnoty premennej, nie odkaz na originál. Zmeny vykonané na parametri vo vnútri funkcie neovplyvnia pôvodnú premennú mimo nej.

Pre štruktúry a výčty v Swift sa predvolene používa prenos pomocou kópie. Pre triedy sa používa prenos pomocou odkazu (pass by reference), ale v tomto prípade sa prenáša kópia samotného odkazu, nie objektu.

Príklad v Swift:

// Štruktúra Customer
struct Customer {
    var name: String
}

// Funkcia, ktorá mení parameter typu Customer
func changeCustomerName(customer: Customer) {
    var modifiedCustomer = customer // Vytvorí sa kópia štruktúry
    modifiedCustomer.name = "Jane"
    print("Vo vnútri funkcie: \(modifiedCustomer.name)") // Výstup: Vo vnútri funkcie: Jane
}

var myCustomer = Customer(name: "John")
print("Pred funkciou: \(myCustomer.name)") // Výstup: Pred funkciou: John

changeCustomerName(customer: myCustomer)

print("Po funkcii: \(myCustomer.name)") // Výstup: Po funkcii: John - pôvodná hodnota sa nezmenila

Kľúčový aspekt: funkcia pracuje s lokálnou kópiou dát.