Middle
Care sunt diferențele dintre semantică?
sobes.tech AI
Răspuns de la AI
Tipuri de Valoare:
- Sunt copiate la atribuirea sau transmiterea către o funcție.
- Fiecare modificare creează o copie nouă.
- Sunt stocate pe stivă (în majoritatea cazurilor).
- Exemple:
struct,enum, tipuri de bază (Int,Double,Bool,String).
Tipuri de Referință:
- Sunt transmise prin referință.
- Mai multe variabile pot face referire la aceeași instanță.
- Modificarea printr-o variabilă afectează toate referințele la acea instanță.
- Sunt stocate în heap.
- Exemple:
class,func.
Comparare:
| Caracteristică | Tipuri de Valoare | Tipuri de Referință |
|---|---|---|
| Copiere | Pe valoare | Pe referință |
| Modificare | Creează o copie nouă | Afectează toate referințele |
| Stocare | Stivă (de obicei) | Heap |
| Performanță | De obicei mai rapid (fără costuri suplimentare pentru heap și ARC) | Mai lent (din cauza heap-ului și ARC) |
| Siguranța thread-urilor | În mod implicit, sigur pentru thread-uri (fiecare thread lucrează cu propria copie) | Necesită sincronizare la accesul din mai multe thread-uri |