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.