这只是我的头脑中的一个,虽然"我知道它是如何运作的,但不知道它应该是什么时刻"。让我们说我有一个阵列:
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 }
问题:
是否可以保证结果符合原始数组的顺序,即names = ["John", "Mike", "Emma"]
和ages = [24, 21, 23]
?
如果第一个问题的答案为否,是否可以保证names
和ages
同步?
答案 0 :(得分:4)
“将提供的闭包应用于每个数组元素后,map(_ :)方法返回一个包含所有新映射值的新数组,其顺序与原始数组中的相应值相同。”