Middle
Mik a különbségek a szemantikaiak között?
sobes.tech MI
Válasz az MI-től
Értéktípusok:
- Másolódnak érték hozzárendelésekor vagy függvénynek való átadáskor.
- Minden módosítás új másolatot hoz létre.
- A veremben (többnyire) tárolódnak.
- Példák:
struct,enum, alapvető típusok (Int,Double,Bool,String).
Referencia típusok:
- Hivatkozás szerint kerülnek átadásra.
- Több változó is hivatkozhat ugyanarra az példányra.
- Egy változón keresztüli módosítás hatással van minden erre a példányra mutató hivatkozásra.
- Heap-en tárolódnak.
- Példák:
class,func.
Összehasonlítás:
| Jellemző | Értéktípusok | Referencia típusok |
|---|---|---|
| Másolás | Érték szerint | Hivatkozás szerint |
| Módosítás | Új másolat készül | Minden hivatkozásra hatással van |
| Tárolás | Verem (általában) | Heap |
| Teljesítmény | Gyakran gyorsabb (nincs heap és ARC költség) | Lassabb (heap és ARC miatt) |
| Szálbiztonság | Alapértelmezett, szálbiztos (minden szál saját másolatával dolgozik) | Szükséges szinkronizáció több szálról való hozzáféréskor |