2017-02-28 47 views
0

,我要問的問題,從哪個時候我把一些代碼這樣swift從哪個方向開始閱讀字典?

let interestingNumber = [ 
    "Square": [1,4,9,16,25], 
    "Prime": [2,3,5,7,11,13], 
    "Fiboannci": [1,1,2,3,5,8], 
    "asd":[2,3,4,5], 
    "zxc":[3,4,5] 
] 

for (key,values) in interestingNumber{ 
    print(values) 
} 

方向迅速開始閱讀字典或陣列

輸出

[1, 4, 9, 16, 25] 
[2, 3, 5, 7, 11, 13] 
[1, 1, 2, 3, 5, 8] 
[3, 4, 5] 
[2, 3, 4, 5] 

這是不是確切的順序,所以你知道爲什麼迅速嗎?有時也會使它不同!

我猜可能是它在它的字符串命令,那麼我想,但我認爲它不是太多,所以爲什麼不迅速做到這一點?

+1

字典的鍵值對的順序是不確定的,並且完全實現有關。你不應該依賴它。 – Hamish

+0

字典存儲沒有定義的順序.. http://stackoverflow.com/questions/29601394/swift-stored-values-order-is-completely-changed-in-dictionary –

回答

1

就像對的NSDictionary,斯威夫特字典不受鍵或值排序。訂單將始終未指定。 如果您需要對鍵進行排序,唯一的選擇是有一個有序鍵的數組,並對該數組使用for循環。

從蘋果文檔(https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html#//apple_ref/doc/uid/TP40014097-CH8-ID105

字典

相同類型的密鑰和一個集合中的相同類型的 值之間的字典中存儲的關聯與沒有定義排序。每個 值都與一個唯一密鑰相關聯,該密鑰充當字典中值爲 的標識符。與數組中的項目不同, 字典中的項目沒有指定的順序。您可以使用字典時 你需要查找值基於其標識,多,現實世界的字典用於查找定義爲 一個特定的詞同樣 方式。

+0

你是對的鍵值。我會編輯答案。謝謝 –