大家好,我對來自C#的Scala相當陌生。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.
任何想法/幫助將不勝感激。
布萊爾
啊現在很明顯:)謝謝 –