Junior
Mit tárol pontosan a változó, amikor létrehozunk egy value típusú objektumot?
sobes.tech MI
Válasz az MI-től
Amikor érték típusú objektumot (struktúra, enum, tuple Swiftben) hozunk létre, a változó közvetlenül az objektum adataiból készített másolatot tárol a memóriában. Egy ilyen objektum hozzárendelése vagy paraméterként való átadása a tartalmának másolatát eredményezi.
Példák:
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2) // A p1 változó tárolja az adatok másolatát (x=1, y=2)
var p2 = p1 // p2 megkapja p1 adataiból a másolatot. Ezek független másolatok.
p1.x = 10 // Csak p1.x változik
print(p2.x) // 1-et fog kiírni, mivel p2 nem változott
Összehasonlítás referencia típusú (osztály):
| Jellemző | Érték típus (struktúra, enum) | Referencia típus (osztály) |
|---|---|---|
| Mit tárol a változó | Az objektum adatai másolata | A memóriaobjektum hivatkozása |
| Hozzárendelés / Átadás | Az adatok másolata | A hivatkozás másolata (ugyanarra az objektumra mutat) |
| Változtatás | Csak a jelenlegi másolatra hat | A hivatkozott objektumra hat (befolyásolhat más változókat is, amelyek ugyanarra az objektumra mutatnak) |