Что такое Value Type в Swift и что в нём хранится?

«Что такое Value Type в Swift и что в нём хранится?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Value Type (тип-значение) — это тип, который хранит непосредственно само значение данных, а не ссылку на область памяти. При присвоении или передаче в функцию создаётся новая, независимая копия этого значения.

Примеры в Swift: Int, Double, Bool, String, struct, enum, tuple.

var a = 10
var b = a // Создаётся полная копия значения 10
b = 20
print(a) // 10 (исходное значение не изменилось)
print(b) // 20

Ключевые характеристики:

  • Хранение: Размещаются в стеке (быстрый аллокация/деаллокация).
  • Семантика копирования: При присвоении (=) или передаче в функцию создаётся новая копия.
  • Потокобезопасность: Каждый поток работает со своей копией данных.
  • Наследование: Не поддерживают наследование.

Практическое правило: Используйте struct (value type) по умолчанию для моделирования данных, если нет явной необходимости в ссылочной семантике, которую предоставляет class.