Middle
What are the differences between semantics?
sobes.tech AI
Answer from AI
Value Types:
- Are copied when assigned or passed to a function.
- Each change creates a new copy.
- Stored on the stack (mostly).
- Examples:
struct,enum, primitive types (Int,Double,Bool,String).
Reference Types:
- Are passed by reference.
- Multiple variables can refer to the same instance.
- Changes through one reference affect all references to that instance.
- Stored on the heap.
- Examples:
class,func.
Comparison:
| Feature | Value Types | Reference Types |
|---|---|---|
| Copying | By value | By reference |
| Mutation | Creates a new copy | Affects all references |
| Storage | Stack (usually) | Heap |
| Performance | Often faster (no heap/ARC overhead) | Slower (due to heap and ARC) |
| Thread safety | Default thread-safe (each thread works with its own copy) | Require synchronization for shared access from different threads |