Назад к вопросам
JuniorТеорияЧасто
Что произойдёт при компиляции и запуске программы?
struct Counter {
var count = 0
mutating func increment() {
count += 1
}
}
let c = Counter()
c.increment()
print(c.count)Не скомпилируется
- Ждать
1: считать, чтоletзапрещает только присвоитьcдругое значение. Экземпляр вletне меняется совсем, поэтому вызовmutating-метода не компилируется. - Ждать
0: считать, что Swift меняет скрытую копиюc. Копии он не делает: вызовmutating-метода уlet— ошибка компиляции.
- Что выведет программа, если объявить
cчерезvar? - Почему чтение
c.countуletкомпилируется, аc.increment()— нет?