Sobes.tech
Junior

Nima referens turlari?

sobes.tech AI

AIdan javob

Reference Types (Reference Types) — bu ma'lumot turlari bo'lib, ularni tayinlash yoki funktsiyaga o'tkazishda, ular nusxa emas, balki xotirada obyektning instansiyasiga havola yuboriladi.

Asosiy xususiyatlar:

  • Bir nechta o'zgaruvchi bir xil obyekt instansiyasiga murojaat qilishi mumkin.
  • Bir havola orqali obyekt holatini o'zgartirish, bu o'sha obyektga bo'lgan barcha boshqa havolalarda aks etadi.
  • Reference turlari bilan ishlash, heapdagi obyektlarga ko'rsatkichlar orqali amalga oshiriladi.

Swift'da reference turlariga misollar:

  • Sinflar (class)
  • Funktsiyalar (func)
  • Yopilishlar ({...})

Value Types bilan taqqoslaganda:

Xususiyat Reference Type Value Type
Nima uzatilyapti Havola (xotira manzili) Nusxa (kopiya)
Saqlash joyi Heap Stack
Nusxa olish Havola nusxalanadi Qiymat nusxalanadi
O'zgartirish Asl obyektga ta'sir qiladi Nusxaga ta'sir qiladi
class MyClass {
    var value: Int

    init(value: Int) {
        self.value = value
    }
}

var object1 = MyClass(value: 10) // Sinf instansiyasini yaratamiz
var object2 = object1          // object2 endi object1 bilan bir xil instansiyaga murojaat qiladi

print(object1.value) // Chiqish: 10
print(object2.value) // Chiqish: 10

object2.value = 20 // object2 orqali qiymatni o'zgartiramiz

print(object1.value) // Chiqish: 20 (o'zgartirish object1ga ta'sir qildi)
print(object2.value) // Chiqish: 20

Swift'da reference turlar uchun xotira boshqaruvi Automatic Reference Counting (ARC) yordamida amalga oshiriladi.