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