通过混合Ordered并提供compare()函数,对对象进行排序非常简单,如here所示。但是,如果您的排序值是Double而不是Int?
def compare(that:MyClass)= this.x - that.x
其中x是Double会导致编译器错误:“type mismatch; found:Double required:Int”
有没有办法使用双打进行比较而不是投射到Ints?
答案 0 :(得分:8)
最简单的方法是委托RichDouble
Double
的实施(def compare(that : MyClass) = x.compare(that.x)
将被隐式转换):
{{1}}
这种方法的优点是它对所有原始类型的工作方式相同。