Sobes.tech
Junior

Ce anume stochează exact variabila atunci când creăm un obiect de tip value?

sobes.tech AI

Răspuns de la AI

Când creăm un obiect de tip valoare (structură, enumerare, tuplu în Swift), variabila stochează o copie a datelor acestui obiect direct în memorie. Atribuirea sau transmiterea unui astfel de obiect ca parametru duce la o copie a conținutului său.

Exemple:

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

var p1 = Point(x: 1, y: 2) // Variabila p1 stochează o copie a datelor (x=1, y=2)
var p2 = p1              // p2 primește o copie a datelor lui p1. Sunt copii independente.

p1.x = 10                // Se modifică doar p1.x
print(p2.x)              // Va afișa 1, deoarece p2 nu s-a schimbat

Comparativ cu tipul de referință (clasă):

Caracteristică Tip de Valoare (structură, enum) Tip de Referință (clasă)
Ce se stochează în variabilă Copie a datelor obiectului Referință la obiect în memorie
Atribuire / Transmitere Copie a datelor Copie a referinței (indicând același obiect)
Modificare Afectează doar copia curentă Afectează obiectul la care indică referința (poate afecta și alte variabile care fac referire la același obiect)