【问题标题】:Sorting objects based on Double values?根据 Double 值对对象进行排序?
【发布时间】:2010-11-16 19:00:21
【问题描述】:

通过混合 Ordered 并提供 compare() 函数,对对象进行排序非常简单,如 here 所示。但是,如果您的排序值是 Double 而不是 Int 怎么办?

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

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

有没有办法使用 Doubles 进行比较而不是转换为 Ints?

【问题讨论】:

  • 这个成语对于整数类型也被破坏了,因为它会在溢出时产生错误的结果。

标签: scala comparison


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 1970-01-01
    • 2021-09-06
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2018-11-01
    • 2017-09-29
    相关资源
    最近更新 更多