我将变量设置为可选,从服务器获取变量的值,并尝试在每次按下按钮时递增它。
var page: Int? //Received data from previous VC
@IBAction func nextPage(_ sender: Any) {
(page ?? 0) +=1
}
但是这段代码会导致错误。
Left side of mutating operator isn't mutable: '??' returns immutable value
我可以修复这个错误并正常增加可选变量的值吗?
最佳答案
最初 page
变量为 nil,因此左侧将通过 ??
运算符变为 0,所以基本上您是在尝试执行此代码:
0 += 1
错误消息准确地告诉您 - 此表达式的左侧是不可变的,因为 0 文字是不可变的。
你可以通过这个来修复它:
page = (page ?? 0) + 1
这里如果page
为nil,它将执行为:
page = 0 + 1
如果有值,则为:
page = page + 1
关于ios - 关于Swift中可选变量操作的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57968495/