这是我学习 Scala 的第一天(使用“Beginning Scala”一书)。当我阅读forScala 中的循环时,有两个例子:
val books = List("Beginning Scala", "Beginning Groovy", "Beginning Java", "Scala in easy steps", "Scala in 24 hours")
Run Code Online (Sandbox Code Playgroud)
[1]
for (book<-books if book.contains("Scala")) println(book)
Run Code Online (Sandbox Code Playgroud)
[2]
for { book <- books
bookVal = book.toUpperCase()
}
println(bookVal)
Run Code Online (Sandbox Code Playgroud)
让我困惑的是:
在 [1] 中for使用括号“ ()”来包装循环控制块,而在 [2] 中它使用花括号“ {}”。我想知道这是否只是不同的语法但目的相同,还是它们实际上意味着不同的东西?
谢谢
如果您有多行表达式或包含很少其他表达式的表达式,通常会使用大括号。如果您能够(或想要)使用分号编写单行,则可以使用括号。for您可以使用大括号编写每个循环,但会减少括号的使用。
如果有其他情况,大括号允许您使用更简单的语法来编写部分函数或模式匹配。
如果你在 REPL 中编写以下代码:
for (
i <- List(1,2,3)
y = i * i
) yield y
Run Code Online (Sandbox Code Playgroud)
它不会编译例如
| 归档时间: |
|
| 查看次数: |
1034 次 |
| 最近记录: |