我是否正确理解没有办法将局部变量作为索引传递给 for-in 循环,以便在循环结束后修改该变量?
var i = 0
for i in 0..<10 {
}
print(i)
// prints "0" but I expected "10"
最佳答案
正确。按照您编写它的方式, for i
中的 i
掩盖了 for 循环范围内的 var i
。这是故意的。不过,还有许多其他方法可以做您想做的事。例如,您可以编写更像这样的内容:
var i = 0
for _ in 0..<10 {
i += 1
// ...
}
或者使用不同的名称:
var i = 0
for ii in 0..<10 {
i = ii
// ...
}
就个人而言,我更倾向于在这里使用 while 循环:
var i = 0
while i < 10 {
i += 1
// ...
}
for 循环总是可以展开为 while 循环,因此这里不失一般性。
关于swift - for-in 循环中的索引范围 - swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37284855/