Il y a plusieurs façons de construire une liste immuable en Scala (voir artificiel exemple de code ci-dessous). Vous pouvez utiliser une mutable ListBuffer, créer un var
liste et la modifier, utiliser une queue récursive de la méthode, et probablement d'autres que je ne connais pas.
Instinctivement, j'utilise le ListBuffer, mais je n'ai pas de bonne raison de le faire. Est-il préféré ou idiomatiques méthode pour la création d'une liste ou il y a des situations qui sont les meilleurs pour une méthode plutôt qu'une autre?
import scala.collection.mutable.ListBuffer
// THESE are all the same as: 0 to 3 toList.
def listTestA() ={
var list:List[Int] = Nil
for(i <- 0 to 3)
list = list ::: List(i)
list
}
def listTestB() ={
val list = new ListBuffer[Int]()
for (i <- 0 to 3)
list += i
list.toList
}
def listTestC() ={
def _add(l:List[Int], i:Int):List[Int] = i match {
case 3 => l ::: List(3)
case _ => _add(l ::: List(i), i +1)
}
_add(Nil, 0)
}