【发布时间】:2023-03-06 00:17:02
【问题描述】:
当我第一次开始研究 Scala 时,我喜欢用于理解的外观。它们看起来有点像我在 Java 5 中习惯使用的 foreach 循环,但有功能限制和很多优美的语法。
但是当我吸收了 Scala 风格时,我发现每次可以使用压缩时,我都会使用 map、flatMap、filter、reduce 和 foreach。这样,代码的意图对我来说似乎更清楚,潜在的隐藏惊喜更少,而且它们通常也是更短的代码。
据我所知,for-comprehensions 总是被编译成这些方法,所以我想知道:它们到底是干什么用的?我是否错过了一些功能上的更新(这不是第一次)?理解是否能做其他功能不能做的事情,或者至少会更笨拙?它们是否在特定用例下大放异彩?真的只是个人喜好问题吗?
【问题讨论】:
-
这几乎是 stackoverflow.com/questions/1052476/… 的复制品。这个问题想知道
yield做了什么,这个问题想知道它的目的是什么。答案大致相同。