Использование оператора increment дает ошибку сборки: "быстрый оператор Unary" ++ "не может быть применен к операнду типа" Int ""

В разделе Основные операторы в руководстве Swift Programming Language указано, что ++ является допустимым оператором:

"Более сложные примеры включают логический оператор AND && (как в случае if ВведеноDoorCode && прошелRetinaScan) и оператор приращения ++ i, , который является ярлыком для увеличения значения я на 1.

Отрывок из: Apple Inc. "Быстрый язык программирования". интерактивные книги. https://itun.es/gb/jEUH0.l

Однако, когда вы пытаетесь это сделать на игровой площадке,

import UIKit

let i = 0
i++

Ошибка сборки показывает:

быстрый Unary оператор '++' не может быть применен к операнду типа 'Int'

Почему?

Ответ 1

Да, не самая комментированная ошибка компилятора.

Проблема заключается в том, что вы объявили i с помощью let. Поскольку целые числа являются типами значений, это означает, что i является неизменным - его нельзя изменить после присвоения значения.

Если вы объявляете i как var i = 0, код компилируется.

Ответ 2

Вы определили i как неизменяемый с let. Вместо этого попробуйте var i = 0.

Ответ 3

Кроме того, если вы изменяете значение переменной типа значения (структуры или перечисления) внутри одного из своих методов, вы должны определить этот метод как мутирующий:

mutating func modify() {
   ++i
}