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