爲數字我希望能夠來定義斯卡拉以下功能:定義隱式轉換從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]轉換。我仍然不明白爲什麼我不能寫一個隱式轉換。 –