Junior — Middle
Ma'lumot turlari qiymat va havola bo'yicha qanday ajratiladi va ular dasturlashda qanday farq qiladi?
sobes.tech AI
AIdan javob
Qiymat turlari va referens turlari dasturda qanday saqlanib va uzatilishini farqlaydi.
- Qiymat turlari (value types) tayinlash yoki o'tkazishda nusxa olinadi. Har bir o'zgaruvchi o'zining mustaqil nusxasini saqlaydi.
- Referens turlari (reference types) tayinlash yoki o'tkazishda bir xil ob'ektga referens nusxasi olinadi. Bir referens orqali o'zgartirishlar boshqalar tomonidan ko'rinadi.
Masalan, Swiftda:
var a = 5
var b = a // 5 qiymati nusxalanadi
b = 10
print(a) // 5, chunki a va b mustaqil
class Person {
var name: String
init(name: String) { self.name = name }
}
var p1 = Person(name: "Иван")
var p2 = p1 // referens nusxasi
p2.name = "Пётр"
print(p1.name) // "Пётр", chunki p1 va p2 bir xil ob'ektga murojaat qiladi
Shuning uchun, farqni tushunish xotira boshqaruvi va dastur xulq-atvorining oldindan aytib bo'ladiganligi uchun muhimdir.