我具有以下实现,并且还添加了Comparable扩展,如下所示。但是我收到以下错误。我想知道如何解决它。
错误:在类型“ Item”中声明的运算符“ <”必须为“静态” func <(lhs:Item,rhs:Item)-> Bool { ^ 静态
class Item
{
var timeStamp : Date
var value : Int
init(_ value: Int)
{
self.value = value
self.timeStamp = Date()
}
}
extension Item: Comparable
{
func < (lhs: Item, rhs: Item) -> Bool {
return lhs.timeStamp < rhs.timeStamp
}
func == (lhs: Item, rhs: Item) -> Bool {
return lhs.timeStamp == rhs.timeStamp
}
}
答案 0 :(得分:2)
Comparable
协议要求<
运算符实现是静态的。已记录在here中。您可以通过添加static
关键字来修复代码,如下所示:
static func < (lhs: Item, rhs: Item) -> Bool {
return lhs.timeStamp < rhs.timeStamp
}