是否有一个函数,我可以使用迭代数组,并有索引和元素,像Python的枚举?
for index, element in enumerate(list):
...
是否有一个函数,我可以使用迭代数组,并有索引和元素,像Python的枚举?
for index, element in enumerate(list):
...
当前回答
从Swift 3开始,的确如此
for (index, element) in list.enumerated() {
print("Item \(index): \(element)")
}
其他回答
Xcode 8和Swift 3: 可以使用temparray . enumeration()枚举数组。
例子:
var someStrs = [String]()
someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]
for (index, item) in someStrs.enumerated()
{
print("Value at index = \(index) is \(item)").
}
控制台:
Value at index = 0 is Apple
Value at index = 1 is Amazon
Value at index = 2 is Google
对于那些想使用forEach的人。
斯威夫特4
extension Array {
func forEachWithIndex(_ body: (Int, Element) throws -> Void) rethrows {
try zip((startIndex ..< endIndex), self).forEach(body)
}
}
Or
array.enumerated().forEach { ... }
在iOS 8.0/Swift 4.0+
你可以使用forEach 根据苹果文档:
返回一个对序列(n, x),其中n表示从0开始的连续整数,x表示序列中的一个元素。
let numberWords = ["one", "two", "three"]
numberWords.enumerated().forEach { (key, value) in
print("Key: \(key) - Value: \(value)")
}
斯威夫特5. x:
我个人更喜欢使用forEach方法:
list.enumerated().forEach { (index, element) in
...
}
你也可以使用简短的版本:
list.enumerated().forEach { print("index: \($0.0), value: \($0.1)") }
你可以简单地使用循环枚举来得到你想要的结果:
斯威夫特2:
for (index, element) in elements.enumerate() {
print("\(index): \(element)")
}
Swift 3和4:
for (index, element) in elements.enumerated() {
print("\(index): \(element)")
}
或者你可以简单地执行一个for循环来得到相同的结果:
for index in 0..<elements.count {
let element = elements[index]
print("\(index): \(element)")
}
希望能有所帮助。