Sobes.tech
Junior

Kas yra nuorodų tipai?

sobes.tech AI

Atsakymas iš AI

Nuorodų tipai (Reference Types) yra tokie duomenų tipai, kurie priskyrimo ar perdavimo funkcijai metu perduoda nuorodą į objekto egzempliorių atmintyje, o ne pačią jo kopiją.

Pagrindinės savybės:

  • Daug vartotojų gali nuorodoti į tą patį objekto egzempliorių.
  • Objekto būsenos keitimas per vieną nuorodą atsispindi visuose kituose nuorodose į tą patį objektą.
  • Darbas su nuorodų tipais vyksta per rodykles į objektus krūvoje (heap).

Pavyzdžiai nuorodų tipų Swift:

  • Klasės (class)
  • Funkcijos (func)
  • Užuominos ({...})

Palyginimas su reikšminiais tipais (Value Types):

Savybė Nuorodų tipas (Reference Type) Reikšminis tipas (Value Type)
Kas perduodama Nuoroda (adresas atmintyje) Kopija reikšmės
Saugojimo vieta Krūva (Heap) Stekas (Stack)
Kopijavimas Nuoroda kopijuojama Reikšmė kopijuojama
Keitimas Veikia ant pradinio objekto Veikia ant kopijos
class MyClass {
    var value: Int

    init(value: Int) {
        self.value = value
    }
}

var object1 = MyClass(value: 10) // Sukuriamas klasės egzempliorius
var object2 = object1          // object2 dabar nuoroda į tą patį egzempliorių kaip ir object1

print(object1.value) // Išvestis: 10
print(object2.value) // Išvestis: 10

object2.value = 20 // Keičiamas reikšmė per object2

print(object1.value) // Išvestis: 20 (Keitimas per object2 paveikė object1)
print(object2.value) // Išvestis: 20

Atminties valdymas nuorodų tipams Swift vyksta naudojant Automatic Reference Counting (ARC).