在不推荐使用 for 循环的情况下转换 forEach?
Convert forEach without deprecated for-loop?
我正在使用 forEach
语句,但我想将其转换为 for-loop
。但是,现在不推荐使用 C 风格 for-loop
。
这是我要转换的内容:
items.indices.forEach { fromIndex in
...
}
如何使用向前兼容的for-loop
?
您可以尝试以下方法之一:
let arr = ["a", "b", "c", "d", "e", "f", "g"]
let startIndex = 3
let increment = 2
for var i in startIndex..<arr.count {
print(arr[i], terminator: " ") //d e f g
}
for i in startIndex.stride(to: arr.count, by: increment) {
print(i, terminator: " ") //d f
}
for (index, element) in arr.enumerate() {
print(index, terminator: " ") //d f a b c d e f g
}
这是 good article 我在 Swift 2.2.
中找到的更改
至于你的问题,如果你想使用传统的 c 风格循环,新的语法是:
for var i in 0..<items.indices.count {
print("index: \(i)")
}
我正在使用 forEach
语句,但我想将其转换为 for-loop
。但是,现在不推荐使用 C 风格 for-loop
。
这是我要转换的内容:
items.indices.forEach { fromIndex in
...
}
如何使用向前兼容的for-loop
?
您可以尝试以下方法之一:
let arr = ["a", "b", "c", "d", "e", "f", "g"]
let startIndex = 3
let increment = 2
for var i in startIndex..<arr.count {
print(arr[i], terminator: " ") //d e f g
}
for i in startIndex.stride(to: arr.count, by: increment) {
print(i, terminator: " ") //d f
}
for (index, element) in arr.enumerate() {
print(index, terminator: " ") //d f a b c d e f g
}
这是 good article 我在 Swift 2.2.
中找到的更改至于你的问题,如果你想使用传统的 c 风格循环,新的语法是:
for var i in 0..<items.indices.count {
print("index: \(i)")
}