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.