是否有一个函数,我可以使用迭代数组,并有索引和元素,像Python的枚举?

for index, element in enumerate(list):
    ...

当前回答

我在寻找一种使用Dictionary的方法时找到了这个答案,结果证明它很容易适应,只需为元素传递一个元组。

// Swift 2

var list = ["a": 1, "b": 2]

for (index, (letter, value)) in list.enumerate() {
    print("Item \(index): \(letter) \(value)")
}

其他回答

我在寻找一种使用Dictionary的方法时找到了这个答案,结果证明它很容易适应,只需为元素传递一个元组。

// Swift 2

var list = ["a": 1, "b": 2]

for (index, (letter, value)) in list.enumerate() {
    print("Item \(index): \(letter) \(value)")
}

我们调用枚举函数来实现这个。就像

    for (index, element) in array.enumerate() {
     index is indexposition of array
     element is element of array 
   }

从Swift 2开始,需要对集合调用enumerate函数,如下所示:

for (index, element) in list.enumerate() {
    print("Item \(index): \(element)")
}

在函数式编程中像这样使用. enumeration ():

list.enumerated().forEach { print($0.offset, $0.element) } 

如果你出于某种原因想要一个更传统的查找循环,通过索引访问数组中的元素:

let xs = ["A", "B", "C", "D"]

for i in 0 ..< xs.count {
    print("\(i) - \(xs[i])")
}

输出:

0 - A
1 - B
2 - C
3 - D