Ответ
Value Type — это тип, экземпляр которого хранит непосредственное значение данных. При присваивании или передаче в функцию/метод создается новая независимая копия этого значения.
Ключевые характеристики:
- Копирование по значению (Copy-on-Assignment): Каждая переменная имеет свою собственную копию данных.
- Изменения изолированы: Модификация копии не влияет на оригинал.
- Хранение: Как правило, размещаются в стеке (быстрее), но могут быть и в куче, если это необходимо.
Примеры в Swift:
- Все базовые типы:
Int,Double,Bool,String. - Коллекции из стандартной библиотеки:
Array,Dictionary,Set(они реализованы как структуры). - Пользовательские
structиenum.
Пример:
struct Point {
var x: Int
var y: Int
}
var pointA = Point(x: 10, y: 20)
var pointB = pointA // Создается ПОЛНАЯ КОПИЯ значения
pointB.x = 100 // Меняется только pointB
print(pointA.x) // 10 (pointA остался неизменным)
print(pointB.x) // 100
Преимущества: Потокобезопасность, предсказуемость поведения и отсутствие неявного разделяемого состояния.