基于Double值对对象进行排序?

DrG*_*ary 4 comparison scala

分选物体是由序混合,并提供比较()函数,如图足够简单这里.但是如果你的排序值是Double而不是Int呢?

def compare(that:MyClass)= this.x - that.x

其中x是Double将导致编译器错误:"type mismatch; found:Double required:Int"

有没有办法使用双打进行比较而不是投射到Ints?

Pav*_*aev 8

最简单的方法是委托compare实现RichDouble(Double将隐式转换):

def compare(that : MyClass) = x.compare(that.x)
Run Code Online (Sandbox Code Playgroud)

这种方法的优点是它对所有原始类型的工作方式相同.