为什么Swift常量可以用作循环索引



我知道这个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声明的indexfor循环中使用的index是不同的变量。

最新更新