Sobes.tech
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.