Почему value type по дефолту immutable (Swift)?
Всем привет! Объясните, пожалуйста, почему в Swift Value type по дефолту является неизменяемым? Почему конкретно для структур и энумов, мне необходимо использовать mutating ?
Ответы (1 шт):
Автор решения: schmidt9
→ Ссылка
struct и enum для того и предназначены, чтобы представлять типы значений (value type) в отличие от ссылочных типов(reference type, class). Когда что использовать - пример
Поскольку их поведение как типов является поведением хранения/копирования по значению (то бишь с гарантией неизменности объекта), то mutating используется для явного указания отличного от дефолтного поведения в случае с методами (для свойств такое указание это let или var). Подробнее например здесь