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) |