Junior
İstinad növləri nədir?
sobes.tech Süni İntellekt
AI-dan cavab
İstinad Növləri (Reference Types) — yaddaşda obyektin nümunəsinə istinad göndərən və ya ötürən məlumat tipləridir, özünün surəti deyil.
Əsas xüsusiyyətlər:
- Bir neçə dəyişən eyni obyekt nümunəsinə istinad edə bilər.
- Bir istinad vasitəsilə obyektin vəziyyətində edilən dəyişikliklər həmin obyektə aid bütün digər istinadlara əks olunur.
- İstinad növləri ilə işləmə, yığın (heap) içindəki obyektlərə göstəricilər vasitəsilə həyata keçirilir.
Swift-də istinad növlərinə nümunələr:
- Siniflər (
class) - Funksiyalar (
func) - Bağlamalar (
{...})
Dəyər növləri (Value Types) ilə müqayisə:
| Xüsusiyyət | İstinad Növü (Reference Type) | Dəyər Növü (Value Type) |
|---|---|---|
| Nə ötürülür | İstinad (bellek ünvanı) | Dəyərin surəti |
| Saxlama yeri | Yığın (Heap) | Yığım (Stack) |
| Surət alma | İstinad surətlənir | Dəyər surətlənir |
| Dəyişiklik | Orijinal obyektə təsir edir | Nüsxəyə təsir edir |
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
var object1 = MyClass(value: 10) // Sinif nümunəsi yaradılır
var object2 = object1 // object2 indi eyni nümunəyə istinad edir
print(object1.value) // Çıxış: 10
print(object2.value) // Çıxış: 10
object2.value = 20 // object2 vasitəsilə dəyəri dəyişirik
print(object1.value) // Çıxış: 20 (dəyişiklik object1-ə də təsir etdi)
print(object2.value) // Çıxış: 20
Swift-də istinad növləri üçün yaddaş idarəetməsi, Automatic Reference Counting (ARC) vasitəsilə həyata keçirilir.