了解 Scala 的 For 循环范围(用于理解)
在Programming Scala的第3章中,作者给出了两个for循环的例子/ for推导式,但在使用 () 和 {} 之间切换。为什么会出现这种情况,因为这些本质上看起来像是在做同样的事情? 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)
In Chapter 3 of Programming Scala, the author gives two examples of for loops / for comprehensions, but switches between using ()'s and {}'s. Why is this the case, as these inherently look like they're doing the same thing? Is there a reason breed <- dogBreeds
is on the 2nd line in example #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)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您阅读了绿色提示:
因此,对于
() 和 {}
的理解是相同的,唯一改变的是使用的分隔符:对于()
你必须使用分号“;”
作为分隔符,对于{}
,您使用换行
。If you read the green Tip:
So for comprehension with
() and {}
are the same the only thing that change is the separator used : for()
you have to use asemicolon ";"
as separator and for{}
you usenew line
.