通用值 class

Generic value class

是否可以在 scala 中为某些 Numeric[T] 定义值 class?我试过这样的事情:

case class Inches[T <: Numeric[T]](value: T)(implicit num: Numeric[T]) extends AnyVal

但是我得到 value classes can have only one parameter 的编译错误。

有什么方法可以绕过这个吗?

先谢谢了。

您可以将 Numeric 参数从 class 移动到需要它的方法:

case class Inches[T](value: T) extends AnyVal {
  def foo()(implicit num: Numeric[T]) = ...
}

T <: Numeric[T] 是错误的。)