Sobes.tech
Junior — Middle

Care sunt diferențele la copierea datelor pentru tipurile de valoare și tipurile de referință?

sobes.tech AI

Răspuns de la AI

Tipurile de valoare (value types) și tipurile de referință (reference types) diferă în modul în care se face copierea datelor:

  • Tipuri de valoare: la copiere, se creează o copie completă și independentă a datelor. Modificările în copie nu afectează originalul.
  • Tipuri de referință: la copiere, se copiază referința la același obiect din memorie. Modificările printr-o referință se reflectă în toate.

De exemplu, în iOS, structurile (struct) sunt tipuri de valoare, iar clasele (class) sunt tipuri de referință.

Exemplu în Swift:

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

var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
// p1.x == 0, p2.x == 10 — copii independente

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var person1 = Person(name: "Иван")
var person2 = person1
person2.name = "Пётр"
// person1.name == "Пётр" — ambele referințe la același obiect