Sobes.tech
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.