Junior
Šta tačno čuva promenljiva kada kreiramo objekat tipa value?
sobes.tech АИ
Одговор од АИ
Када креирамо објекат типа вредност (структура, енаум, кортеж у 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 се није променио
Упоређење са референтним типом (класа):
| Карактеристика | Тип вредности (структура, енаум) | Тип референтне (класа) |
|---|---|---|
| Шта се чува у променљивој | Копија података објекта | Референца на објекат у меморији |
| Присвајање / Пренос | Копија података | Копија референце (показује на исти објекат) |
| Промена | Утиче само на тренутну копију | Утиче на објекат на који указује референца (може утицати и на друге променљиве које реферишу на исти објекат) |