scala - 如何编写一个 scala 函数来接受两种类型的参数?

标签 scala generics

我有两个功能:

def capPredDouble(rawPred: Double): Double = {
  if (label == "1") {
    Math.min(1.0, rawPred)
  } else {
    Math.max(0, rawPred)
  }
}


def capPred(rawPred: Float): Float = {
  if (label == "1") {
    Math.min(1.0f, rawPred)
  } else {
    Math.max(0, rawPred)
  }
}

是否可以使用多态性使它们成为一个函数?

最佳答案

这似乎有效。

def capPred[N](rawPred :N)(implicit ev :Numeric[N]) :N =
  if (<some condition>) ev.min(ev.one,  rawPred)
  else                  ev.max(ev.zero, rawPred)

关于scala - 如何编写一个 scala 函数来接受两种类型的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53526278/

相关文章:

java - 将 Scala 应用程序与 NewRelic Java 代理集成

C# 从工厂返回通用接口(interface)

scala - 从不同类运行通用功能的最佳方式

scala - 将值映射到 json4s 中的案例类

Nullable(Of T) 对象上的 VB.NET 扩展,给出类型错误

java - 无法调用 Comparator 泛型类中的实例方法

generics - 在别名中使用特征作为类型参数的语法

django - 如何在 Django 中创建和强制执行通用的 OneToOne 关系?

scala - 具有多种路由配置的 akka-http

scala - Spark 在 groupBy/aggregate 中合并/组合数组