2
這只是彈出我的頭,雖然「我知道它是如何工作,但不知道它應該是什麼時刻」。比方說,我有一個數組:由地圖返回的數組的順序
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
是同步的?
1.是的,有 – courteouselk
@AntonBronnikov你有參考嗎?軼事證據是,它們是按照原始順序進行的,但我不知道蘋果是否會在未來實施一個用於'map'的並行版本,這會改變順序。 –
不,我沒有參考資料(5分鐘內無法釣魚)。這就是我在評論中回答的原因。我的想法是,'Array'採用'SequenceType'協議,其中有'map()',這意味着映射將按照序列的順序完成,在數組的情況下是數組的順序。 – courteouselk