繁体   English   中英

理解Scala for For循环的范围(理解)

[英]Understanding Scope on Scala's For Loops (For Comprehension)

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)

如果您阅读绿色提示:

for表达式可以用括号或花括号定义,但使用花括号意味着你不必用分号分隔你的过滤器。 大多数情况下,当您有多个过滤器,分配等时,您更喜欢使用花括号。

因此,对于使用() and {}理解是唯一改变的是使用的分隔符:for ()你必须使用semicolon ";" 作为分隔符和{}你使用new line

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM