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

Что выведет Swift: структура с классом внутри

Вопрос

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

final class Box { var value = 0 }
struct Wrapper {
    var box = Box()
    var count = 0
}

var w1 = Wrapper()
var w2 = w1
w2.box.value = 10
w2.count = 3
print(w1.box.value, w1.count)

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

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

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

Коротко

Код выведет: 10 0. При копировании Wrapper поле count копируется как значение, а поле box как ссылка на тот же объект.

Что выведет

10 0

Разбор

При копировании Wrapper поле count копируется как значение, а поле box как ссылка на тот же объект. Поэтому w1.box.value тоже 10, а w1.count остался 0.

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

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