如何在此上下文中指定type参数的默认值?
def increase[T: Numeric](x: T, y: T): T = implicitly[Numeric[T]].plus(x, y)
val inc = increase _
输出:
C:\ Sources \ scala \ main.scala:12:错误:无法找到隐含的 Numeric类型的证据参数[Nothing] val inc =增加_
答案 0 :(得分:2)
increase
具有泛型类型参数。当您尝试将方法解析为函数时,它会隐式尝试查找需要解析方法的类型T
。由于您尚未指定任何类型,因此它会尝试查找Numeric[Nothing]
并发现范围内没有此类隐式可用。
您需要为每个分辨率明确指定类型T
:
scala> val intInc = increase[Int] _
inc: (Int, Int) => Int = <function2>
scala> val doubleInc = increase[Double] _
doubleInc: (Double, Double) => Double = <function2>