【发布时间】:2021-02-15 07:33:55
【问题描述】:
我正在编写一些代码来比较两个双精度值并将一个从字符串解析为双精度值。如下所示:
val diffFun0 = (dims:Dims) => (dims.score == zippedSubs(dims.dimension_name).trim.toDoubleOption.getOrElse(0))
val diffFun = (dims:Dims) => (dims.score - zippedSubs(dims.dimension_name).trim.toDoubleOption.getOrElse(0)).abs > 0.01
//zippedSubs(dims.dimension_name) is double inside string "0.1" or something else
diffLen0 += ods.dimensions.count(diffFun0) //play.sbt.PlayExceptions$CompilationException: Compilation error[Overloaded method value [-] cannot be applied to (AnyVal)]
diffLen += ods.dimensions.count(diffFun) //works totally fine
IDE 显示 zippedSubs(dims.dimension_name).trim.toDoubleOption.getOrElse(0) 是 double 类型,当我们使用 == 运算符时一切正常。但其他情况则不然。
【问题讨论】:
标签: scala playframework jvm implicit