map返回的数组顺序

时间:2015-07-11 15:11:52

标签: swift swift2

这只是我的头脑中的一个,虽然"我知道它是如何运作的,但不知道它应该是什么时刻"。让我们说我有一个阵列:

struct Person {
    var name : String
    var age : Int
}

var people = [Person]()
people.append(Person(name: "John", age: 24))
people.append(Person(name: "Mike", age: 21))
people.append(Person(name: "Emma", age: 23))

我想将people映射到两个名称和年龄不同的数组:

let names = people.map { $0.name }
let ages  = people.map { $0.age }

问题:

  1. 是否可以保证结果符合原始数组的顺序,即names = ["John", "Mike", "Emma"]ages = [24, 21, 23]

  2. 如果第一个问题的答案为否,是否可以保证namesages同步?

1 个答案:

答案 0 :(得分:4)

是的,here's your source

“将提供的闭包应用于每个数组元素后,map(_ :)方法返回一个包含所有新映射值的新数组,其顺序与原始数组中的相应值相同。”