Sie haben:Scala Feldinitialisierung
val array = new Array[Array[Cell]](height, width)
Wie initialisieren Sie alle Elemente auf neue Zelle ("etwas")?
Danke, Etam (neu zu Scala).
Sie haben:Scala Feldinitialisierung
val array = new Array[Array[Cell]](height, width)
Wie initialisieren Sie alle Elemente auf neue Zelle ("etwas")?
Danke, Etam (neu zu Scala).
val array = Array.fill(height)(Array.fill(width)(new Cell("something")))
val array = Array.fromFunction((_,_) => new Cell("something"))(height, width)
Array.fromFunction übernimmt eine Funktion, die für die Anordnung zurückkehren sollte das Element durch diese Argumente (dh f (x, y) beschrieben, n ganzzahlige Argumente und gibt das Element für die Position in der Matrix nimmt (x) (y)) und dann n Ganzzahlen, die die Dimensionen des Arrays in einer separaten Argumentliste beschreiben.
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>
Unter der Annahme, das Array bereits erstellt wurde, können Sie diese verwenden:
for {
i <- array.indices
j <- array(i).indices
} array(i)(j) = new Cell("something")
Wenn Sie bei der Erstellung initialisiert werden können, die anderen Antworten sehen.
Dies ist schöner als vonFunction, aber es erfordert Scala 2.8. Beachten Sie, dass Sie nur die zweidimensionale Version von fill verwenden können: 'Array.fill (Höhe, Breite) (neue Zelle (" etwas "))'. – sepp2k