Что выведет код Junior Типы значений и ссылочные обновлено

Что выведет Swift: mutating-метод enum

Вопрос

Что выведет код?

enum Light {
    case red, green
    mutating func toggle() { self = self == .red ? .green : .red }
}

var light = Light.red
let saved = light
light.toggle()
print(light, saved)

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

Напишите, что выведет код: каждый вывод с новой строки.

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

Коротко

Код выведет: green red. Enum тоже тип значения. saved получил копию до переключения. mutating-метод присваивает self новое значение только у light. print выводит имя кейса.

Что выведет

green red

Разбор

Enum тоже тип значения. saved получил копию до переключения. mutating-метод присваивает self новое значение только у light. print выводит имя кейса.

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

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