Middle
Kuo skiriasi semantikos?
sobes.tech AI
Atsakymas iš AI
Vertės tipai:
- Kopijuojami priskyrimo ar perdavimo funkcijai metu.
- Kiekvienas pakeitimas sukuria naują kopiją.
- Saugojami ant stovo (daugeliu atvejų).
- Pavyzdžiai:
struct,enum, pagrindiniai tipai (Int,Double,Bool,String).
Nuorodų tipai:
- Perduodami nuoroda.
- Kelios kintamosios gali nurodyti tą patį egzempliorių.
- Pakeitimai per vieną kintamąjį paveikia visas nuorodas į tą patį egzempliorių.
- Saugojami heap'e.
- Pavyzdžiai:
class,func.
Palyginimas:
| Savybė | Vertės tipai | Nuorodų tipai |
|---|---|---|
| Kopijavimas | Pagal vertę | Pagal nuorodą |
| Pakeitimas | Sukuriama nauja kopija | Paveikia visas nuorodas |
| Saugojimas | Stekas (dažniausiai) | Heap'as |
| Našumas | Dažnai greičiau (be papildomų išlaidų heap ir ARC) | Lėčiau (dėl heap ir ARC) |
| Srauto saugumas | Pagal numatytuosius, saugus srautui (kiekvienas srautas dirba su savo kopija) | Reikalauja sinchronizacijos prieigos iš skirtingų srautų |