Sobes.tech
Junior — Middle

Ma'lumot turlarining semantikasi bo'yicha farqlari qanday: qiymatlar va havolalar?

sobes.tech AI

AIdan javob

Ma'lumot turlari semantikaga ko'ra qiymat turlari (value types) va manba turlari (reference types) ga bo'linadi.

  • Qiymat turlari ma'lumotlarni to'g'ridan-to'g'ri saqlaydi. Belgilash yoki funktsiyaga o'tkazishda, o'zi nusxa olinadi. iOS (Swift) misollari Int, Double, Bool, tuzilmalar (struct).

  • Manba turlari ma'lumotlar joylashgan xotira hududiga havola saqlaydi. Belgilashda, havola nusxa olinadi, ma'lumotlar emas. Bir havola orqali o'zgartirishlar boshqalarda ko'rinadi. Swiftda, bu sinflar (class), obyektlar.

Misol:

struct Point { var x: Int; var y: Int }
class Person { var name: String
  init(name: String) { self.name = name } }

var p1 = Point(x: 1, y: 2)
var p2 = p1
p2.x = 10
print(p1.x) // 1 — nusxa o'zgarmadi

var person1 = Person(name: "Иван")
var person2 = person1
person2.name = "Пётр"
print(person1.name) // "Пётр" — bir obyektga havola

Farqni tushunish, xotira va obyektlarning xulq-atvorini boshqarish uchun muhimdir.