Junior
Nusxa ko'chirish nima anglatadi?
sobes.tech AI
AIdan javob
Pass by value orqali funksiyaga uzatilganda, o'zgaruvchining qiymati nusxa sifatida uzatiladi, aslga emas. Funksiya ichida parametrga kiritilgan o'zgartirishlar tashqaridagi asl o'zgaruvchini ta'sir qilmaydi.
Swift'da tuzilmalar va ro'yxatlar uchun odatda nusxa bilan uzatish ishlatiladi. Klasslar uchun esa, pass by reference (referens bilan uzatish) ishlatiladi, lekin bu holda, referensning o'zi nusxa olinadi, ob'ekt emas.
Swift'da misol:
// Customer tuzilmasi
struct Customer {
var name: String
}
// Customer turidagi parametrni o'zgartiradigan funksiya
func changeCustomerName(customer: Customer) {
var modifiedCustomer = customer // Tuzilmaning nusxasi yaratiladi
modifiedCustomer.name = "Jane"
print("Funksiya ichida: \(modifiedCustomer.name)") // Chiqish: Funksiya ichida: Jane
}
var myCustomer = Customer(name: "John")
print("Funksiyadan oldin: \(myCustomer.name)") // Chiqish: Funksiyadan oldin: John
changeCustomerName(customer: myCustomer)
print("Funksiyadan keyin: \(myCustomer.name)") // Chiqish: Funksiyadan keyin: John - asl qiymat o'zgarmadi
Asosiy nuqta: funksiya lokal nusxa bilan ishlaydi.