我知道这个Swift代码是有效的:
let index = 0
for index in (1...9) {
print(index) // index changes value from 1 to 9
}
但是如果你说index += index
你得到错误
"无法赋值:'index'是'let'常量">
那么,如果索引是常量,为什么可以在其值将更改的循环中使用它?
那么,如果索引是常量,为什么可以在其值将更改的循环中使用它?
您可以将index
看作是每次通过循环新建和初始化的,就像在循环体中声明的变量一样。在这里使用let
是有意义的,因为通常您不会更改循环中的循环计数器。
更新:编辑后,代码变得更有意义,pkamb的注释也更加清晰:用let index = 0
声明的index
与for
循环中使用的index
是不同的变量。