分选物体是由序混合,并提供比较()函数,如图足够简单这里.但是如果你的排序值是Double而不是Int呢?
def compare(that:MyClass)= this.x - that.x
其中x是Double将导致编译器错误:"type mismatch; found:Double required:Int"
有没有办法使用双打进行比较而不是投射到Ints?
最简单的方法是委托compare实现RichDouble(Double将隐式转换):
def compare(that : MyClass) = x.compare(that.x)
Run Code Online (Sandbox Code Playgroud)
这种方法的优点是它对所有原始类型的工作方式相同.