Cela devrait fonctionner pour une séquence (Liste et ListBuffer)
@tailrec
def getTotalValue(list: Seq[Double], value: Double): Double =
list.headOption match {
case Some(v) => getTotalValue(list.tail, value + v)
case None => value
}
Par ex pour l'utiliser:
getTotalValue(ListBuffer(1,2,3,4), 0)
getTotalValue(List(1,2,3,4), 0)
retournera 10.0
Si vous voulez quelque chose de spécifique à la liste, vous pouvez profiter des inconvénients (: :) opérateur pour correspondre à la tête :: queue au lieu d'utiliser headOption.
(Bien que, je suppose que vous faites cela plus à des fins académiques. Un moyen plus facile de résumer les valeurs serait d'utiliser la somme. Par exemple, Liste (1,2,3,4) .sum)
Travaillez-vous avec 'List' ou' ListBuffer'? Ce sont deux types différents. –