使用数字泛型的 Scala 操作

Scala operations with Numeric generics

当我尝试做的时候

def subtract[T: Numeric](x: T, y: T) : T = x-y

在 Scala 2.12 中,无法识别 -。然而,这基本上等同于 Addition with generic type parameter in Scala 的建议。我需要更改什么?

最简单的事情是 import Numeric.Implicits._。这会将标准中缀运算符 -* 等添加到当前隐式范围。然后一切都应该按预期工作。

或者,您可以下拉隐式并直接使用它。

def subtract[T: Numeric](x: T, y: T) : T = implicitly[Numeric[T]].minus(x,y)