为数字我希望能够来定义斯卡拉以下功能:定义隐式转换从int斯卡拉
import Numeric.Implicits._
def f[T:Numeric](a:T) = a*2
,但我得到的错误
error: could not find implicit value for parameter num: scala.math.Numeric[Any]
def f[T:Numeric](a:T) = a*2
^
我能得到它的工作与一个隐含的n:数字[T]参数和n.fromInt
,但可读性受损。 (我想写真正的代码是比这更复杂。)
我试图定义从int到数字[T]的隐式转换:
implicit def intToNumericT[T](x:Int)(implicit n:Numeric[T]):T = n.fromInt(x)
但这并不能帮助。有没有办法让上面的代码工作?
这样做的效果在于,我的客户端代码看起来是正确的,即使它有点乏味,因为我有皮条客的每一个参数,我可能需要一个隐式的Int - > Numeric [A]转换。我仍然不明白为什么我不能写一个隐式转换。 –