Junior — Middle
Фарқиятҳо дар нусхабардории маълумот барои намудҳои арзиш ва намудҳои истинод чӣ гунаанд?
sobes.tech AI
Ҷавоб аз AI
Ҳақиқий турлар (value types) ва ишора турлари (reference types) маълумотларни кўчиришда қандай амалга оширилиши бўйича фарқ қилади:
- Ҳақиқий турлар: кўчиришда, тўлиқ ва мустақил нусха яратилади. Нусхадаги ўзгаришлар оригиналга таъсир қилмайди.
- Ишора турлари: кўчиришда, шу ёки бу объектга ишора кўчирилади. Бир ишора орқали қилинган ўзгаришлар барчага таъсир қилади.
Масалан, iOSда, структуралар (struct) ҳақиқий турлар, ва синфлар (class) ишора турларидир.
Swiftда мисол:
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
// p1.x == 0, p2.x == 10 — мустақил нусхалар
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1 = Person(name: "Иван")
var person2 = person1
person2.name = "Пётр"
// person1.name == "Пётр" — икки ишора бир хил объектга