Когда мы создаем объект типа value (структура, перечисление, кортеж в Swift), переменная хранит копию данных этого объекта напрямую в памяти. Присваивание или передача такого объекта по параметру приводит к копированию его содержимого.
Примеры:
swift
Сравнение с reference типом (классом):
| Характеристика | Value Type (структура, enum) | Reference Type (класс) |
|---|---|---|
| Что хранится в переменной | Копия данных объекта | Ссылка на объект в памяти |
| Присваивание / Передача | Копирование данных | Копирование ссылки (указывает на тот же объект) |
| Изменение | Влияет только на текущую копию | Влияет на объект, на который указывает ссылка (может влиять на другие переменные, ссылающиеся на тот же объект) |