Использование оператора 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
}