Middle
Koje su razlike između semantika?
sobes.tech АИ
Одговор од АИ
Vrednosni tipovi:
- Kopiraju se prilikom dodele ili prenosa u funkciju.
- Svaka promena pravi novu kopiju.
- Čuvaju se na steku (u većini slučajeva).
- Primeri:
struct,enum, osnovni tipovi (Int,Double,Bool,String).
Tipovi referenci:
- Prenose se putem reference.
- Više promenljivih može da se odnosi na isti primerak.
- Promena putem jedne promenljive utiče na sve reference na taj primerak.
- Čuvaju se u hrpi.
- Primeri:
class,func.
Poređenje:
| Osobina | Tipovi vrednosti | Tipovi referenci |
|---|---|---|
| Kopiranje | Po vrednosti | Po referenci |
| Izmena | Kreira se nova kopija | Utiče na sve reference |
| Skladištenje | Stek (obično) | Hrpa |
| Performanse | Često brže (bez troškova za hrpu i ARC) | Sporije (zbog hrpe i ARC) |
| Bezbednost niti | Podrazumevano, sigurno za niti (svaki nit radi sa svojom kopijom) | Zahteva sinhronizaciju pri zajedničkom pristupu iz različitih niti |