Выбор ответа Junior Типы значений и ссылочные спрашивают часто обновлено

Зачем нужен mutating в структуре

Вопрос

Зачем метод структуры помечают mutating?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Метод меняет свойства self, и у let его не вызвать. У типов значений self внутри метода по умолчанию неизменяем. mutating разрешает менять свойства и даже присвоить self новое значение.

Варианты ответа

  1. Метод становится потокобезопасным за счёт эксклюзивного доступа
  2. Метод можно переопределить в наследнике структуры
  3. Метод вызывается только у экземпляров, размещённых в куче
  4. Метод меняет свойства self, и у let его не вызватьправильный ответ

Разбор

У типов значений self внутри метода по умолчанию неизменяем. mutating разрешает менять свойства и даже присвоить self новое значение. Поэтому такой метод нельзя вызвать у константы let. К потокобезопасности это не относится, наследования у структур нет, а размещение в памяти от mutating не зависит.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.