Scala的理解和循环

周一

客观的

试图解密的理解和循环和它们的区别。

Expr1          ::=  `for' (`(' Enumerators `)' | `{' Enumerators `}')
                       {nl} [`yield'] Expr
Enumerators    ::=  Generator {semi Generator}
Generator      ::=  Pattern1 `<-' Expr {[semi] Guard | semi Pattern1 `=' Expr}
Guard          ::=  `if' PostfixExpr

问题

对于循环

for(enumsenums)ee的for循环针对由枚举器枚举生成的每个绑定执行表达式ee。

“执行表达式”意味着For Loop将不会产生结果值,而只是对每个绑定应用一些操作,因此它基本上是一条语句(据我所知,在Scala中,表达式返回一个值,但一条语句不会返回) ?

例如,在下面将不会产生任何结果。

val mnemonic = Map('2' -> "ABC", '3' -> "DEF")
val a = for ((digit, str) <- mnemonic) str.contains(digit)

为了理解

用于(枚举)产量ee的for表达式将计算枚举数枚举所生成的每个绑定的表达ee并收集结果。

而For Comprehension将通过收集对每个绑定Expr表达式求值的结果来生成一个收集对象如果是这样,货箱的类型是什么?如果这是一种方法,我可以查看API文档,但是哪个文档指定了For comprehension返回的类型?

dhg

for循环为集合中的每个项目执行一条语句:

for (x <- List(1,2,3)) {
  println(x)
}

将打印数字1、2和3。循环的返回类型为Unit,有点像voidJava中的那样,因此将其分配给任何对象都没有意义。

使用关键字for的a理解yield只是mapor的语法糖flatmap这两个语句是等效的:

val y1 = for (x <- List(1,2,3)) yield x+1
val y2 = List(1,2,3).map(x => x+1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala的理解和循环

来自分类Dev

Python for 循环和理解 for 循环

来自分类Dev

关于参与者中循环和接收的scala语法理解

来自分类Dev

Scala理解未来和选择

来自分类Dev

Scala理解未来和选择

来自分类Dev

Scala for循环和迭代器

来自分类Dev

for循环和函数c++的理解

来自分类Dev

for 循环和列表理解的不同结果

来自分类Dev

无法理解咖啡因循环和理解

来自分类Dev

Scala-模式匹配和For循环问题

来自分类Dev

Scala中的未来和无限循环

来自分类Dev

循环循环,但仍难以理解

来自分类Dev

在Python循环中构建字典-列表和字典理解

来自分类常见问题

列表理解和函数功能是否比“ for循环”更快?

来自分类Dev

嵌套列表理解中的不同输出和等效的for循环

来自分类Dev

将嵌套循环和条件转换为列表理解

来自分类Dev

将嵌套循环和条件转换为列表理解

来自分类Dev

列表理解和for循环的结果不一样

来自分类Dev

将 for 循环和 if 语句翻译成字典理解

来自分类Dev

Scala正则表达式和理解

来自分类Dev

Scala正则表达式和理解

来自分类Dev

用于理解链期货和结果的 Scala 未来

来自分类Dev

带有比较和循环的 Scala 内嵌追加

来自分类Dev

具有循环引用和值更新的 Scala 案例类

来自分类Dev

理解单行For循环

来自分类Dev

循环不变证明的理解

来自分类Dev

试图完全理解For循环

来自分类Dev

字典的python理解循环

来自分类Dev

嵌套每个循环的理解