Passer des paramètres aux fonctions mutatrices dans Scala
Question
Je joue à Scala pour essayer de comprendre, donc cet échantillon de code est tout simplement académique.
J'essaie de passer une liste mutable à une fonction, que cette fonction exécute fonctionne dessus, puis après l'appel de fonction, je peux utiliser la liste mise à jour.
var data: List[Int] = List()
// Call to function to fill a list
data = initList(data)
// Output only 0-100
data.foreach( num => if (num < 100) { println(num) })
def initList(var data: List[Int]) : List[Int] = {
for ( i <- 0 to 1000 )
{
data = i :: data
}
data = data.reverse
data
}
Le seul code ci-dessus qui ne compile pas est le var
dans def initList()
, et parce que les données sont alors un val
Je ne peux pas y effectuer de mutations dans la fonction.
Permettez-moi de commencer par dire que je sais à Scala, les mutateurs sont généralement mal vu, donc je ne suis pas seulement ouvert à une réponse directe à ma question, mais ouverte à de meilleures façons de le faire entièrement. Parfois, dans les projets, il existe un élément de données qui va d'un endroit à l'autre pour être mis à jour, mais si vous ne pouvez pas transmettre des données à une fonction à modifier, quelle est une bonne alternative?
J'ai lu des tutoriels et Google pour cela, je suppose que je ne trouve pas grand-chose à ce sujet car ce n'est généralement pas fait de cette façon à Scala.
Pas de solution correcte