Middle
Was sind die Unterschiede zwischen den Semantiken?
sobes.tech KI
Antwort von AI
Werttypen:
- Werden beim Zuweisen oder Übergabe an eine Funktion kopiert.
- Jede Änderung erstellt eine neue Kopie.
- Werden auf dem Stack gespeichert (in den meisten Fällen).
- Beispiele:
struct,enum, Basistypen (Int,Double,Bool,String).
Referenztypen:
- Werden per Referenz übergeben.
- Mehrere Variablen können auf dasselbe Exemplar verweisen.
- Änderungen durch eine Variable wirken sich auf alle Referenzen auf dieses Exemplar aus.
- Werden im Heap gespeichert.
- Beispiele:
class,func.
Vergleich:
| Merkmal | Werttypen | Referenztypen |
|---|---|---|
| Kopieren | Nach Wert | Nach Referenz |
| Änderung | Es wird eine neue Kopie erstellt | Beeinflusst alle Referenzen |
| Speicherung | Stack (meistens) | Heap |
| Leistung | Oft schneller (keine Overheads durch Heap und ARC) | Langsamer (aufgrund Heap und ARC) |
| Thread-Sicherheit | Standardmäßig thread-sicher (jeder Thread arbeitet mit seiner eigenen Kopie) | Erfordern Synchronisation bei gemeinsamem Zugriff aus verschiedenen Threads |