【发布时间】:2013-10-08 21:26:41
【问题描述】:
大家好,我是来自 C# 的 Scala 新手。
我正在尝试编写我自己的累积(折叠)版本我想知道为什么我会遇到以下问题:
def accumulate[T](list : List[T], initial: T, f: (T, T) => T) : T = {
@tailrec def loop[T](list: List[T], accum: T) : T =
if(list.length == 0)
accum
else{
val head : T = list.head
val res : T = f(accum,head)
loop[T](list.tail, res)
}
loop(list,initial)
}
我收到以下错误:
type mismatch;
found : accum.type (with underlying type T)
required: T
val res : T = f(accum,head)
^
考虑到一切都是 T 类型,我看不出我是如何出现类型不匹配的。
任何想法/帮助将不胜感激。
布莱尔
【问题讨论】:
标签: scala generics generic-programming