Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Swift常量可以用作循环索引?_Swift - Fatal编程技术网

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

为什么Swift常量可以用作循环索引?,swift,Swift,我知道这个Swift代码是有效的: let index=0 对于(1…9)中的索引{ 打印(索引)//索引将值从1更改为9 } 但是如果你说 index+=index 你得到了错误 “无法分配给值:'index'是'let'常量” 那么,如果索引是一个常量,为什么可以在其值将发生变化的循环中使用它呢 那么,如果索引是一个常量,为什么可以在其值将发生变化的循环中使用它呢 您可以将index看作是每次通过循环新创建和初始化的,就像在循环体中声明的变量一样。在这里使用let是有意义的,因为通常您不会

我知道这个Swift代码是有效的:

let index=0
对于(1…9)中的索引{
打印(索引)//索引将值从1更改为9
}
但是如果你说
index+=index
你得到了错误

“无法分配给值:'index'是'let'常量”

那么,如果索引是一个常量,为什么可以在其值将发生变化的循环中使用它呢

那么,如果索引是一个常量,为什么可以在其值将发生变化的循环中使用它呢

您可以将
index
看作是每次通过循环新创建和初始化的,就像在循环体中声明的变量一样。在这里使用
let
是有意义的,因为通常您不会更改循环内的循环计数器


更新:编辑后,代码更有意义,pkamb的评论也更加清晰:您使用
let index=0
声明的
索引
for
循环中使用的
索引
是不同的变量

您的
让索引
和索引的
引用名为
索引
的完全不同的变量。如果删除
让索引
,则索引
仍然有效。索引的
将在循环的每次迭代中重新声明。它不会改变值。我建议你在这篇文章中检查let和var之间的差异->非常好的澄清,谢谢!