2016-07-11 30 views
0

我想實現一個符合協議哈希的通用結構。實現符合Hashable協議的通用結構。錯誤:Refernce以通用型「STRA」要求<...>錯誤論點

struct strA<T: Equatable>:Hashable, CustomStringConvertible { 
private(set) var key: String 
private(set) var value: T 
private(set) var timeStamp: NSDate 

init(leafKey key:String, leafValue value:T){ 
    self.key = key 
    self.value = value 
    self.timeStamp = NSDate() 
} 

var description: String { 
    return "\(self.key): \(self.value)" 
} 

var hashValue: Int { 
    return self.key.hashValue 
} 
} 

func == (lhs: strA, rhs: strA) -> Bool { 
    return lhs.key == rhs.key 
} 

我在執行相等方法時出現編譯錯誤。 enter image description here

我必須使結構符合協議哈希,因爲它進入數組內,因爲它的值可以是任何的Equatable類型。 (我不使用「任意」,因爲在這裏,將採取幾乎一切。)

如何發揚這種情況還是有解決這個任何其他方式?

p.s.這不是一個重複的問題。

回答

2

由於strA是一個通用的,則該方法平等也必須是一個通用的。

func ==<T>(lhs: strA<T>, rhs: strA<T>) -> Bool { 
    return lhs.key == rhs.key 
} 

-

邊注:所有類型應該以大寫字母開頭。所以,StrAstrA

+0

是啊。只是爲了這個問題,我用一個隨機的名字重新輸入了結構。是的。這工作。 –

相關問題