Sobes.tech
Junior

Co dokładnie przechowuje zmienna, gdy tworzymy obiekt typu value?

sobes.tech AI

Odpowiedź od AI

Gdy tworzymy obiekt typu wartość (struktura, wyliczenie, krotka w Swift), zmienna przechowuje kopię danych tego obiektu bezpośrednio w pamięci. Przypisanie lub przekazanie takiego obiektu jako parametru powoduje skopiowanie jego zawartości.

Przykłady:

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

var p1 = Point(x: 1, y: 2) // Zmienna p1 przechowuje kopię danych (x=1, y=2)
var p2 = p1              // p2 otrzymuje kopię danych p1. Są to niezależne kopie.

p1.x = 10                // Zmienia się tylko p1.x
print(p2.x)              // Wypisze 1, ponieważ p2 się nie zmieniło

Porównanie z typem referencyjnym (klasa):

Charakterystyka Typ Wartości (struktura, enum) Typ Referencyjny (klasa)
Co jest przechowywane w zmiennej Kopia danych obiektu Odwołanie do obiektu w pamięci
Przypisanie / Przekazanie Kopia danych Kopia odwołania (wskazuje na ten sam obiekt)
Zmiana Dotyczy tylko bieżącej kopii Dotyczy obiektu, na który wskazuje odwołanie (może wpływać na inne zmienne odwołujące się do tego samego obiektu)