Ihr Fehler liegt in der Zeile locations ::: List(Location(x, y))
. Dies verkettet die Listen, aber nichts mit dem Ergebnis. Wenn Sie es durch locations = locations ::: List(Location(x, y))
ersetzen, würden Sie Ihr gewünschtes Ergebnis haben.
Allerdings gibt es mehrere idiomatische Möglichkeiten, dieses Problem in Scala zu lösen. In Scala ist das Schreiben von unveränderlichem Code der bevorzugte Stil (d. H. Verwenden Sie val
anstelle von var
, wo es möglich ist).
Hier ein paar Möglichkeiten, es zu tun:
Mit Ausbeute:
val location = for (x <- 0 to 10; y <- 0 to 10) yield Location(x, y)
tabellieren Verwendung:
val location = List.tabulate(11, 11) { case (x, y) => Location(x, y) }
Noch kürzere:
val location = List.tabulate(11, 11)(Location)
Edit: nur bemerkte, dass Siehattenwas inklusive ist. 0 until 10
ist inklusive-exklusiv. Ich habe die Argumente geändert, um 11 zu tabellieren.