在Programming Scala的第3章中,作者给出了for循环/ for comprehension的两个例子,但是在using()和{}之间切换。为什么会出现这种情况,因为这些本身看起来像是在做同样的事情?问题breed <- dogBreeds
是否在示例#2的第二行?
// #1 ()'s
for (breed <- dogBreeds
if breed.contains("Terrier");
if !breed.startsWith("Yorkshire")
) println(breed)
// #2 {}'s
for {
breed <- dogBreeds
upcasedBreed = breed.toUpperCase()
} println(upcasedBreed)
答案 0 :(得分:9)
如果您阅读绿色提示:
表达式的可以用 括号或花括号,但使用 花括号意味着你不必 用分号分隔您的过滤器。 大多数时候,你更喜欢使用 当你有超过的时候会有花括号 一个过滤器,分配等。
因此,使用() and {}
进行理解时,唯一更改的是所使用的分隔符:对于()
,您必须使用semicolon ";"
作为分隔符并使用{}
你使用new line
。