Sobes.tech
Junior

Какво точно съхранява променливата, когато създаваме обект от тип value?

sobes.tech AI

Отговор от AI

Когато създаваме обект от тип стойност (структура, изброяване, кортеж в Swift), променливата съхранява копие на данните на този обект директно в паметта. Присвояването или предаването на такъв обект като параметър води до копиране на съдържанието му.

Примери:

struct Point {
    var x: Int
    var y: Int
}

var p1 = Point(x: 1, y: 2) // Променливата p1 съхранява копие на данните (x=1, y=2)
var p2 = p1              // p2 получава копие на данните на p1. Това са независими копия.

p1.x = 10                // Само p1.x се променя
print(p2.x)              // Ще изведе 1, тъй като p2 не се е променило

Сравнение с тип на референция (класа):

Характеристика Тип стойност (структура, enum) Тип референция (класа)
Какво се съхранява в променливата Копие на данните на обекта Референция към обекта в паметта
Присвояване / Предаване Копие на данните Копие на референцията (посочва към същия обект)
Промяна Влияе само върху текущото копие Влияе върху обекта, към който сочи референцията (може да влияе и на други променливи, които сочат към същия обект)