题
在第3章中 编程Scala, ,作者给出了两个示例for loops / for for Gonallensions,但是在使用()和{}'s之间进行切换。为什么这是这种情况,因为这些本质上看起来像是在做同样的事情?有原因吗 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)
解决方案
如果您阅读绿色提示:
对于表达式可以用括号或卷曲括号定义,但是使用卷发括号意味着您不必用半圆柱分离过滤器。在大多数情况下,当您拥有多个过滤器,分配等时,您会更喜欢使用卷曲括号。
因此,为了理解 () and {}
是相同的唯一变化的是使用的分离器: ()
您必须使用 semicolon ";"
作为分离器和 {}
你用 new line
.
不隶属于 StackOverflow