Sobes.tech
Junior

Mi az a hivatkozási típusú adatok?

sobes.tech MI

Válasz az MI-től

A hivatkozási típusok nem tárolják magát az értéket, hanem egy hivatkozást (memóriacím) arra a helyre, ahol ez az érték tárolva van. Az ilyen adatok hozzárendelése vagy átadása során csak a hivatkozás másolódik, nem az egész objektum. A hivatkozáson keresztül végzett módosítások láthatók lesznek, amikor más hivatkozásokon keresztül érik el ugyanazt az objektumot.

Példák hivatkozási típusokra különböző nyelveken:

  • Java: Osztályok (String, Object, egyedi osztályok), interfészek, tömbök.
  • C#: Osztályok (string, object, egyedi osztályok), interfészek, delegáltak, tömbök.
  • Python: Minden adat típus (listák, szótárak, tuple-ök, halmazok, osztályok, függvények).
# Python példája
list1 = [1, 2, 3]
list2 = list1  # list2 ugyanarra a listára hivatkozik, mint list1

list2.append(4)

print(list1)  # Kimenet: [1, 2, 3, 4]
print(list2)  # Kimenet: [1, 2, 3, 4]

A különbség az értéktípusokhoz képest az, hogy az értéktípusok magát az értéket tárolják, és hozzárendelés vagy átadás esetén az egész érték másolódik.

Összehasonlító példa:

Jellemző Értéktípusok Hivatkozási típusok
Tárolás Maga az érték Hivatkozás az értékre
Hozzárendelés/átadás Az érték másolata A hivatkozás másolata
Módosítás Nem befolyásolja az eredetit Megváltoztatja az eredetit
Példa (C#) int, struct, enum class, interface, array