0
考慮初始值(0),我想實現一些功能,將適用Long => T
爲整數a..b
的範圍和積累T
型的結果(這是運動,而不是有效的解決方案搜索)的數字參數化類型
def sum[T <: Number](f: Long => T)(a: Long, b: Long): T = {
def loop(acc: T, n: Long): T =
if (n > b)
acc
else
loop(acc + f(n), n + 1)
loop(0, a)
}
它的缺陷在loop(0,
抱怨
error: type mismatch;
found : Int(0)
required: T
loop(0, a)
我明白爲什麼,但什麼是給數字型T
這裏的0的選項?如果有的話,當然。
感謝,是它的唯一途徑? – dmitry
在此答案:http://stackoverflow.com/a/4034176/978664所示的一些語法糖,所以類型PARAM可能被給定爲'[T:數值]'和'VAL NUM =隱式[數值[T]]' 。只是爲了協議。 – dmitry