如何在swift中简化数组枚举

时间:2015-02-12 06:50:35

标签: arrays swift enumeration simplify

所以我有一个数组,我想在所有项目中加1。

var arr = [2, 3, 6, 9]

for (index, x) in enumerate(arr) {

    arr[index] = arr[index] + 1

}

是否有更简单的版本?没有理由拥有' x'在那里。我知道有另外一种写作方式:

arr[index] = x + 1

但这似乎没有足够的理由让x' x'那里。

2 个答案:

答案 0 :(得分:2)

您可以迭代数组的indices

var arr = [2, 3, 6, 9]

for index in indices(arr) {
    arr[index] += 1
}

基本上,indices(arr)arr.startIndex ..< arr.endIndex相同,但很简单:)

或者,在这种特定情况下,您可能希望:

arr = arr.map { $0 + 1 }

答案 1 :(得分:1)

是的,这是.map函数的一个非常好的用例。

var arr = [2, 3, 4]
arr = arr.map({$0 + 1})
// arr would now be [3, 4, 5]