Junior — Middle
Cum se disting tipurile de date după valoare și după referință și în ce constau diferențele în programare?
sobes.tech AI
Răspuns de la AI
Tipurile de date după valoare și după referință diferă în modul în care sunt stocate și transmise într-un program.
- Tipurile după valoare (value types) sunt copiate la atribuire sau transmitere. Fiecare variabilă conține propria copie independentă a datelor.
- Tipurile după referință (reference types) copiază referința la același obiect în memorie la atribuire sau transmitere. Modificările printr-o referință sunt vizibile prin altele.
De exemplu, în Swift:
var a = 5
var b = a // se copiază valoarea 5
b = 10
print(a) // 5, deoarece a și b sunt independente
class Person {
var name: String
init(name: String) { self.name = name }
}
var p1 = Person(name: "Иван")
var p2 = p1 // se copiază referința
p2.name = "Пётр"
print(p1.name) // "Пётр", deoarece p1 și p2 fac referire la același obiect
Prin urmare, înțelegerea diferenței este importantă pentru gestionarea memoriei și previzibilitatea comportamentului programului.