刚开始学习Swift,在一本书中偶然发现了以下代码:
for i in 0..<n {
let x = start + delta * Double(i)
result += [fn(x)]
}
return result
让我困惑的是,x似乎被定义为一个常量,但在for循环中,这应该是不可能的,因为它改变了它的值。
我期待的是:
for i in 0..<n {
var x = start + delta * Double(i)
result += [fn(x)]
}
return result
1条答案
按热度按时间9jyewag01#
因为它改变了它的价值。
它不改变值,局部常量在每次迭代中(重新)创建,并在右大括号行中丢弃。
它改变了值,因此它必须是一个
var
iable,语法是在**循环之前声明的