Junior — Middle
Proqramlaşdırmada dəyər tipləri və referans tipləri arasında nə fərqlər var?
sobes.tech Süni İntellekt
AI-dan cavab
Dəyər növləri (value types) və referans növləri (reference types) məlumatların saxlanması və ötürülməsi üsulunda fərqlənir.
-
Dəyər növləri dəyişən yaddaşında birbaşa saxlanılır. Təyin və ya ötürmə zamanı, öz dəyəri kopyalanır. Kopya üzərində edilən dəyişikliklər orijinalı təsir etmir. Swift-də dəyər növlərinə strukturlar (struct), enum-lər (enum) və tuple-lər daxildir.
-
Referans növləri yığma yaddaşda saxlanılır və dəyişən obyektə referansı ehtiva edir. Təyin zamanı, yalnız referans kopyalanır, obyekt deyil. Bir referans vasitəsilə edilən dəyişikliklər bütün referanslarda əks olunur. Swift-də bunlar siniflər (class) ilə təmsil olunur.
Misal:
struct Point {
var x: Int
var y: Int
}
class Person {
var name: String
init(name: String) { self.name = name }
}
var p1 = Point(x: 1, y: 2)
var p2 = p1
p2.x = 10
print(p1.x) // 1 — nüsxə dəyişməyib
var person1 = Person(name: "Alice")
var person2 = person1
person2.name = "Bob"
print(person1.name) // Bob — hər iki dəyişən eyni obyektə referans edir