Sobes.tech
Junior — Middle

Чӣ тавр намудҳои маълумотро бо арзиш ва бо истинод фарқ кардан ва дар барномасозӣ чӣ фарқ доранд?

sobes.tech AI

Ҷавоб аз AI

Намуди маълумоти бо арзиш ва бо истинод дар чӣ гуна нигоҳ дошта ва интиқол дода мешаванд, фарқ мекунанд.

  • Намуди арзиш (value types) дар вақти таъин ё гузариш нусхабардорӣ мешаванд. Ҳар як тағирёбанда нусхаи мустақилонаи маълумотро дорад.
  • Намуди истинод (reference types) дар вақти таъин ё гузариш ба нусхаи истинод ба объект дар хотира нусхабардорӣ мешавад. Тавзеҳот тавассути як истинод дар дигарон дида мешавад.

Масалан, дар Swift:

var a = 5
var b = a // нусхаи арзиши 5
b = 10
print(a) // 5, зеро a ва b мустақиланд

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var p1 = Person(name: "Иван")
var p2 = p1 // нусхаи истинод
p2.name = "Пётр"
print(p1.name) // "Пётр", зеро p1 ва p2 ба як объект ишора мекунанд

Аз ин сабаб, фаҳмидани фарқ муҳим аст барои идоракунии хотира ва пешгӯии рафтори барнома.