Vous avez:initialisation de tableau Scala
val array = new Array[Array[Cell]](height, width)
Comment initialize-vous tous les éléments à la nouvelle cellule ("quelque chose")? Merci, Etam
Vous avez:initialisation de tableau Scala
val array = new Array[Array[Cell]](height, width)
Comment initialize-vous tous les éléments à la nouvelle cellule ("quelque chose")? Merci, Etam
val array = Array.fill(height)(Array.fill(width)(new Cell("something")))
val array = Array.fromFunction((_,_) => new Cell("something"))(height, width)
Array.fromFunction accepte une fonction qui prend des arguments entiers n et renvoie l'élément de la position dans le tableau décrit par ces arguments (par exemple f (x, y) doit retourner l'élément de réseau (x) (y)), puis n entiers décrivant les dimensions du tableau dans une liste d'arguments distincte.
Welcome to Scala version 2.8.0.r21376-b20100408020204 (Java HotSpot(TM) Client VM, Java 1.6.0_18).
Type in expressions to have them evaluated.
Type :help for more information.
scala> val (height, width) = (10,20)
height: Int = 10
width: Int = 20
scala> val array = Array.fill(height, width){ new Cell("x") }
array: Array[Array[Cell[java.lang.String]]] = Array(Array(Cell(x), Cell(x), ...
scala>
En supposant que le tableau a déjà été créé, vous pouvez utiliser ceci:
for {
i <- array.indices
j <- array(i).indices
} array(i)(j) = new Cell("something")
Si vous pouvez initialiser à la création, voir les autres réponses.
Ceci est plus agréable que fromFunction, mais il nécessite scala 2.8. Notez que vous pouvez simplement utiliser la version bidimensionnelle de fill: 'Array.fill (height, width) (new Cell (" quelque chose "))'. – sepp2k