Вам необходимо использовать фигурные скобки для аргумента foreach
, если вы хотите, чтобы он интерпретировался как мульти-оператор block (что вы делаете).
Помимо этогоТо, что вы делаете, выглядит хорошо.Вот сеанс REPL, где я мутирую объект в блоке foreach аналогичным образом (для простоты использую StringBuilder):
scala> val sb = new java.lang.StringBuilder
sb: java.lang.StringBuilder =
scala> val items = List("tinker", "tailor", "soldier", "spy")
items: List[java.lang.String] = List(tinker, tailor, soldier, spy)
scala> items.foreach { item =>
| sb.append(item)
| sb.append("; ")
| println(sb)
| }
tinker;
tinker; tailor;
tinker; tailor; soldier;
tinker; tailor; soldier; spy;
(И использование скобок для блока foreach приводит к ошибке <console>:3: error: ')' expected but '.' found.
)