Sobes.tech
Junior — Middle

Dəyər və istinad növləri üçün məlumatların kopyalanmasında fərqlər nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Dəyər növləri (value types) və istinad növləri (reference types) məlumatların kopyalanma üsulunda fərqlənir:

  • Dəyər növləri: kopyalama zamanı, məlumatların tam müstəqil nüsxəsi yaradılır. Nüsxədəki dəyişikliklər orijinalı təsir etmir.
  • İstinad növləri: kopyalama zamanı, eyni obyektə istinad kopyalanır. Bir istinad vasitəsilə edilən dəyişikliklər hamısında əks olunur.

Məsələn, iOS-də strukturlar (struct) dəyər növləri, siniflər (class) isə istinad növləridir.

Swift-də nümunə:

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 — müstəqil nüsxələr

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

var person1 = Person(name: "Иван")
var person2 = person1
person2.name = "Пётр"
// person1.name == "Пётр" — eyni obyektə iki istinad