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