Sobes.tech
Junior

Kas ir atsauces tipi?

sobes.tech AI

Atbilde no AI

Saistīto tipu (Reference Types) ir tādi datu tipi, kuri piešķiršanas vai funkcijas nodošanas laikā nodod atsauci uz objekta piemēru atmiņā, nevis pašu tā kopiju.

Galvenās īpašības:

  • Daudzas mainīgās var atsaukties uz vienu un to pašu objekta piemēru.
  • Objekta stāvokļa maiņa caur vienu atsauci atspoguļojas visās citās atsaucēs uz šo pašu objektu.
  • Darbs ar saistītajiem tipiem notiek caur norādēm uz objektiem kaudzē (heap).

Saistīto tipu piemēri Swift:

  • Klases (class)
  • Funkcijas (func)
  • Aizkaves ({...})

Salīdzinājums ar vērtību tipiem (Value Types):

Raksturlielums Saistītais tips (Reference Type) Vērtību tips (Value Type)
Kas tiek nodots Norāde (adrese atmiņā) Kopija vērtības
Glabāšanas vieta Kaudzē (Heap) Stekā (Stack)
Kopēšana Norāde tiek kopēta Vērtība tiek kopēta
Izmaiņas ietekmē sākotnējo objektu ietekmē kopiju
class MyClass {
    var value: Int

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

var object1 = MyClass(value: 10) // Izveido klases piemēru
var object2 = object1          // object2 tagad atsaucas uz to pašu piemēru kā object1

print(object1.value) // Izvade: 10
print(object2.value) // Izvade: 10

object2.value = 20 // Maina vērtību caur object2

print(object1.value) // Izvade: 20 (Mainīšana caur object2 ietekmēja object1)
print(object2.value) // Izvade: 20

Atmiņas pārvaldība saistītajiem tipiem Swift tiek veikta ar Automatic Reference Counting (ARC).