Si vous voulez faire quelque chose comme
un (5) = // résultat d'un calcul
Ensuite, vous devrez utiliser quelque chose de la hiérarchie des collections mutables. Je suggérerais ArrayBuffer
.
scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer
scala> val a = ArrayBuffer.fill(3,3)(0)
a: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer(ArrayBuffer(0, 0, 0), ArrayBuffer(0, 0, 0), ArrayBuffer(0, 0, 0))
scala> a(2)(1) = 4
scala> a(0) = ArrayBuffer(1,2,3)
scala> a
res2: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer(ArrayBuffer(1, 2, 3), ArrayBuffer(0, 0, 0), ArrayBuffer(0, 4, 0))
Notez que fill
vous permet de créer automatiquement et initialiser jusqu'à structures 5D. Notez également que vous pouvez étendre la longueur de ceux-ci, mais cela ne va pas étendre toute la structure multidimensionnelle, juste celle que vous ajoutez. Ainsi, par exemple,
scala> a(2) += 7 // Add one element to the end of the array
res3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(0, 4, 0, 7)
scala> a
res4: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]]
= ArrayBuffer(ArrayBuffer(1, 2, 3), ArrayBuffer(0, 0, 0), ArrayBuffer(0, 4, 0, 7))
merci beaucoup. – evildead
Je commente ici encore, comme je vois maintenant mon problème utilisait 2.7.7 de ma distribution. Je me demandais pourquoi toutes les choses que j'ai découvertes ne fonctionnent pas pour moi. Maintenant avec 2.8 tout fonctionne bien. J'ai testé ta réponse et tout se passe bien. C'est exactement ce dont j'avais besoin. Merci encore – evildead