2015-02-12 45 views
0

所以我有一个数组,我想将1加到所有项目中。如何简化swift中的枚举枚举

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

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

    arr[index] = arr[index] + 1 

} 

是否有更简单的版本?没有理由在那里有'x'。我知道有这种写法的替代方式:

arr[index] = x + 1 

但这似乎不足以有'X'的理由。

回答

2

可以遍历数组

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

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

本质的indicesindices(arr)相同arr.startIndex ..< arr.endIndex,但其实很简单:)

OR,在这种特殊情况下,你可能想:

arr = arr.map { $0 + 1 } 
+0

我刚开始学习swift,但是.map函数和它的简单性对我来说更有意义。 我不确定什么指数是什么,它有什么限制比枚举(或如何更好),但感谢回复:) – iAlborz 2015-02-13 23:31:41

+1

进一步'地图'功能我意识到它也可以做到这些:'ARR = arr.map {$ 0 * $ 0 +(2 * $ 0)}' – iAlborz 2015-02-14 00:52:50

1

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

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