Использование оператора increment дает ошибку сборки "swift унарный оператор" ++ "не может быть применен к операнду типа "Int""
В разделе Основные Операторы, в руководстве по языку программирования Swift указано, что ++ является допустимым оператором:
"более сложные примеры включают логический оператор && (как в случае enteredDoorCode & & passedRetinaScan) и оператор инкремента ++i, который является ярлыком для увеличения значения i на 1."
Выдержка Из: Apple Inc. "Язык Программирования Swift."в iBooks. https://itun.es/gb/jEUH0.l
однако при попытке сделать это на игровой площадке;
import UIKit
let i = 0
i++
ошибка сборки показывает:
swift унарный оператор " ++ "не может быть применен к операнду типа "Int"
почему?
3 ответов
Да, не самая лучшая ошибка компилятора.
проблема в том, что вы объявили i
используя let
. Поскольку целые числа являются типами значений, это означает i
является неизменяемым – его нельзя изменить после присвоения значения.
если вы объявляете i
as var i = 0
код компилируется.
кроме того, если вы изменяете значение переменной типа значения (структуры или перечисления) внутри одного из его методов, вы должны определить этот метод как мутирующий:
mutating func modify() {
++i
}