2016-09-30 49 views
2

我通過一本字典試圖循環:爲什麼dict.enumerated()中的「for(index,(a,b))」會產生錯誤?

let someDict = [...] 
for (index, (a, b)) in someDict.enumerated() { 

} 

它顯示了我的錯誤:

cannot express tuple conversion '(offset: Int, element: (key: String, value: String))' to '(Int, (String, String))'

這是很奇怪的。因爲如果我們比較所需的元組:在與元組類型

(offset: Int, element: (key: String, value: String)) 

for循環:

(Int, (String, String)) 

他們是兼容!

這是怎麼發生的?

請注意,我知道字典沒有特定的順序,因此知道KVP的索引不是很有用。但我仍然想知道爲什麼這不起作用。

+0

我不能告訴*爲什麼*,但'爲(index,(key:a,value:b))在someDict.enumerated()中有效。 –

+0

這可能與[SR-922](https://bugs.swift.org/browse/SR-922)有關,其中類型檢查程序有時無法匹配相同類型的元組,但標籤不同。 – Hamish

+0

@Hamish但是如果我使用'[Double:String]'這樣的字典,它仍然無法編譯! – Sweeper

回答

相關問題