我了解 Ruby 和 Python 的产量。Scala 的 yield 有什么作用?
它用于序列推导(如 Python 的列表推导和生成器,您也可以在其中使用yield)。
yield
它与新元素结合应用for并将新元素写入结果序列。
for
简单示例(来自scala-lang)
/** Turn command line arguments to uppercase */ object Main { def main(args: Array[String]) { val res = for (a <- args) yield a.toUpperCase println("Arguments: " + res.toString) } }
F# 中的相应表达式为
[ for a in args -> a.toUpperCase ]
要么
from a in args select a.toUpperCase
在林克。
Rubyyield有不同的效果。