这只是突然出现在我的脑海中,虽然“我知道它是如何工作的,但不知道它应该是什么时刻”。假设我有一个数组:
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"]
和年龄 = [24, 21, 23]
?如果第一个问题的答案是否定的,是否可以保证
names
和ages
同步?
最佳答案
是的,还有 here's your source .
“将提供的闭包应用于每个数组元素后,map(_:) 方法返回一个包含所有新映射值的新数组,其顺序与原始数组中相应值的顺序相同。”
关于swift - map 返回的数组顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31358581/