Sobes.tech
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)