Junior
Kopya ile transfer ne anlama geliyor?
sobes.tech yapay zeka
AI'dan gelen yanıt
Değer kopyası (pass by value) ile bir fonksiyona iletildiğinde, değişkenin değeri bir kopya olarak aktarılır, orijinal referans değil. Fonksiyon içindeki parametre üzerinde yapılan değişiklikler, fonksiyon dışında orijinal değişkeni etkilemez.
Swift'te yapılar ve enumlar varsayılan olarak kopya ile iletimi kullanır. Sınıflar için ise referans ile iletim (pass by reference) kullanılır, ancak bu durumda, nesne yerine referansın kendisi kopyalanır.
Swift'te örnek:
// Customer yapısı
struct Customer {
var name: String
}
// Customer türünde parametreyi değiştiren fonksiyon
func changeCustomerName(customer: Customer) {
var modifiedCustomer = customer // Yapının bir kopyası oluşturulur
modifiedCustomer.name = "Jane"
print("Fonksiyon içinde: \(modifiedCustomer.name)") // Çıktı: Fonksiyon içinde: Jane
}
var myCustomer = Customer(name: "John")
print("Fonksiyondan önce: \(myCustomer.name)") // Çıktı: Fonksiyondan önce: John
changeCustomerName(customer: myCustomer)
print("Fonksiyondan sonra: \(myCustomer.name)") // Çıktı: Fonksiyondan sonra: John - orijinal değer değişmedi
Ana nokta: fonksiyon, verilerin yerel bir kopyasıyla çalışır.