我使用 Scala 和 JDBC,现在我想重用 PreparedStatement
做一个多插入。我想在数组上使用 foreach 循环,但我无法用 Scala 正确处理。
val stmt = conn.prepareStatement(insertStatement)
// wrong Scala
items.foreach(item : MyItem =>
stmt.setInt(1, item.id)
stmt.setInt(2, item.value)
stmt.executeUpdate()
)
items
是一个包含多个 MyItem
的数组.如何在 Scala 中编写这个 foreach 循环并重用
PreparedStatement
?
最佳答案
您需要对 foreach
的参数使用花括号。如果您希望将其解释为多语句块(您这样做)。
除此之外,你在做什么看起来不错。这是一个 REPL session ,我以类似的方式改变 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.
)
关于scala - 如何在 Scala 中使用 foreach 循环来改变对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7253960/