考虑一下,我想实现一些函数,该函数将应用于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 的选项是什么?如果有的话,当然可以。