我想要typealias字符串鍵值和實現Equatable協議的對象/結構值的字典。所以我寫了這行代碼,但它給了我錯誤,我不知道如何繼續修復。Swift - 帶有實現通用協議的值的Typealias字典
typealias Storage = [String: Equatable]
我想要使用的類型[字符串:Equatable]如在協議的變量,例如:
protocol StorageModel {
var storage: Storage { get set }
init(storage: Storage)
}
錯誤:
Protocol 'Equatable' can only be used as a generic constraint because it has Self or associated type requirements
任何人都可以提出一個解決方案?
換句話說我應該怎麼做到這一點? – 2014-09-20 00:42:09
由於Equatable是如何定義的,我不認爲你可以不定義自己的協議,看起來很像Equatable,即使如此,我認爲你也會遇到同樣的問題。你最好的選擇可能是定義一個新的協議,定義一個等值方法並使用它。 – 2014-09-20 22:01:49
我剛剛更新了這個問題,你能幫我解決問題嗎? – 2014-09-22 08:01:20