swift - for-in 循环中的索引范围 - swift

标签 swift

我是否正确理解没有办法将局部变量作为索引传递给 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/

相关文章:

ios - swift firebase 迭代每个快照值以更新/设置一个值

ios - 使用 AutoLayout 设置 AVPlayer/AVPlayerLayer 大小?

Swift Float 到 UInt8 的转换没有必要吗?

ios - Xcode 6 UIWebView 与 iOS 7.1 不兼容吗

swift - 我这样做正确吗? Swift 3 xcode 从 firebase 加载数据

php - 使用 PHP Response 来存储/使用数据

ios - swift - 从 var(UITextField input) 中删除空格不起作用

swift - 在 Swift 3 中返回序列

swift - 无法在 SwiftUI 中使用自定义 View

ios - 在 UITextField 中按下空格键时启用 Shift 键