Ответ
Структура (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