我需要比较可枚举的值,但是这些值的集合不是 ordered 。
我有值Rock,Paper,Scissors
,例如,我希望Rock
输掉Paper
。这没有发生,请参阅最后两行代码
object Move extends Enumeration {
type Move = Value
val Rock,Scissors = Value
}
import Move._
object MoveOrdering extends Ordering[Move] {
def compare(m1: Move,m2: Move) = {
(m1,m2) match {
case (Rock,Paper) => -1
case (Rock,Scissors) => +1
case (Paper,Rock) => +1
case (Paper,Scissors) => -1
case (Scissors,Paper) => +1
case (Scissors,Rock) => -1
case _ => 0
}
}
}
Rock > Scissors // evaluates to false,I'd expect true
Scissors < Rock // evaluates to false,I'd expect true
我缺少什么使上面的代码 无法正常工作?