Dies sollte für jede Sequenz (List und ListBuffer) arbeiten
@tailrec
def getTotalValue(list: Seq[Double], value: Double): Double =
list.headOption match {
case Some(v) => getTotalValue(list.tail, value + v)
case None => value
}
Z.B. Um es zu nutzen:
getTotalValue(ListBuffer(1,2,3,4), 0)
getTotalValue(List(1,2,3,4), 0)
10,0
zurückkehren Wenn Sie etwas Bestimmtes Liste möchten, können Sie die Vorteile der Nachteile nehmen (: :) Betreiber passen :: Schwanz statt mit headOption Kopf.
(Obwohl, ich nehme an, Sie dies mehr tun für akademische Zwecke. Ein einfacher Weg, um die Werte zu summieren wäre zu verwenden Summe. Eg Liste (1,2,3,4) .sum)
Arbeiten Sie mit einer 'List' oder einem' ListBuffer'? Das sind zwei verschiedene Arten. –