我在Swift操场上有以下代码,其中创建了ProductsContext
结构。
我需要比较卡,看哪个值更高。
理想情况下,我还需要检查所有形式的二进制操作Card
但是,我不断收到一条错误消息:
<, >, <=, >=, etc
进一步的消息指出:
注意:这些部分匹配的参数存在'>'的重载 列出:((),()),(UInt8,UInt8),(Int8,Int8),(UInt16,UInt16), (Int16,Int16),(UInt32,UInt32),(Int32,Int32),(UInt64,UInt64), (Int64,Int64),(UInt,UInt),(Int,Int),(UIContentSizeCategory, UIContentSizeCategory),(日期,日期),(IndexPath,IndexPath), (IndexSet.Index,IndexSet.Index),((A,B),(A,B)),((A,B,C),(A,B, C)),(((A,B,C,D),(A,B,C,D,E)),((A,B,C,D,E),(A,B,C,D,E) ), (((A,B,C,D,E,F),(A,B,C,D,E,F)),(Self,Other),(Self,R)如果 (王牌>王){
error: binary operator '>' cannot be applied to two 'Card' operands if (ace > king) {
~~~ ^ ~~~~
我想知道我出了什么问题。
答案 0 :(得分:1)
您需要遵守Comparable
协议才能使用比较运算符(<
和>
)。
extension Card: Comparable {
static func < (lhs: Card, rhs: Card) -> Bool {
return lhs.rank.values.first < rhs.rank.values.first
}
}