通用值类

时间:2017-12-02 03:41:18

标签: scala generics implicit

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

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

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

有没有办法绕过这个?

事先谢谢。

1 个答案:

答案 0 :(得分:6)

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

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

T <: Numeric[T]错了。)