К какому типу данных относится структура в Swift?

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

Ответ

Структура (struct) в Swift — это тип-значение (value type).

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

  • При присваивании или передаче создаётся новая, независимая копия данных.
  • Каждый экземпляр хранит свои собственные данные. Изменения в одной копии не влияют на другие.
  • Обычно размещаются в стеке (что обеспечивает высокую производительность), но это деталь реализации.
  • Не поддерживают наследование.
  • Для изменения свойств экземпляра внутри метода требуется ключевое слово mutating.

Пример, демонстрирующий семантику значения:

struct Coordinates {
    var x: Int
    var y: Int
}

var pointA = Coordinates(x: 5, y: 10)
var pointB = pointA // Создаётся полная копия значений
pointB.x = 20 // Меняется только копия

print(pointA.x) // Вывод: 5. Исходный экземпляр не изменился.
print(pointB.x) // Вывод: 20