Sobes.tech
Junior

Mi a referencia típusok?

sobes.tech MI

Válasz az MI-től

A hivatkozástípusok (Reference Types) olyan adattípusok, amelyek hozzárendelés vagy függvénynek való átadás esetén hivatkozást továbbítanak az objektum példányára a memóriában, nem pedig annak másolatát.

Fő jellemzők:

  • Több változó is hivatkozhat ugyanarra az objektumpéldányra.
  • Az objektum állapotának változtatása egy hivatkozáson keresztül minden más hivatkozásban megjelenik ugyanarra az objektumra.
  • A hivatkozástípusokkal való munka mutatókon keresztül történik a heap-en (kupán).

Swift-ben a hivatkozástípusokra példák:

  • Osztályok (class)
  • Függvények (func)
  • Zárványok ({...})

Az értéktípusokkal (Value Types) való összehasonlítás:

Jellemző Hivatkozástípus (Reference Type) Értéktípus (Value Type)
Mit továbbítunk Hivatkozás (memória cím) Érték másolata
Tárolási hely Heap Stack
Másolás A hivatkozás másolódik Az érték másolódik
Módosítás Hatással van az eredeti objektumra Hatással van a másolatra
class MyClass {
    var value: Int

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

var object1 = MyClass(value: 10) // Osztálypéldány létrehozása
var object2 = object1          // object2 most ugyanarra az példányra hivatkozik, mint az object1

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

object2.value = 20 // Változtatás az object2-n keresztül

print(object1.value) // Kimenet: 20 (a változtatás az object2-n keresztül hatott az object1-re)
print(object2.value) // Kimenet: 20

A memória kezelés Swift-ben az Automatikus Referenciaszámlálás (ARC) segítségével történik.