我希望能够在Scala中定义以下函数:def f[T:Numeric](a:T) = a*2error: could notfind implicit value for parameter num: scala.math.Numeric[Any]我可以通过一个隐式的n:NumericT参数和n.fr
我有以下Scala函数, val List(x, y, z) = xs.sorted.toList编辑:这是我目前拥有的,是更通用的。不幸的是,它要求我指定泛型参数。def isValid[N, S <% Seq[N]](xs: S)(implicit n: Numeric[N]): Boolean = {
val Seq(x, y, z) = xs.sorted
有更干净的方法来写这个方法吗?最好,我不需要匹配所有有效的类型,而是允许每个具有*方法的Type。另外,是否有一种方法可以在最后不要求asInstanceOf[T]? case int: Int => (int * -1).asInstanceOf[T] case float: Float => (float * -1).asInstanceOf[T]
通用问题:用Numeric类型定义泛型类的正确方法是什么,理想情况下,在Scala 2中不使用任何implicit?尝试在类定义或方法定义中声明+(x: Numeric[T])或使用(implicit num: T => Numeric[T])无助于此。使类按预期编译和运行的唯一方法是使用implicitly[Numeric[T]]的implicitly[Numeric[T]]方法
class NewList[T: Numeric](val va