【发布时间】:2020-03-03 01:16:34
【问题描述】:
我需要比较可枚举的值,但这些值的集合不是 ordered。
我有 Rock,Paper,Scissors 的值,例如,我希望 Rock 输给 Paper。没有出现这种情况,看最后两行代码
object Move extends Enumeration {
type Move = Value
val Rock, Paper, 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
我遗漏了什么使上面的代码没有按预期工作?
【问题讨论】:
-
什么不起作用?
标签: scala enumerable