为了账号安全,请及时绑定邮箱和手机立即绑定

Scala的产量是多少?

Scala的产量是多少?

Scala的产量是多少?我理解Ruby和Python的产量。Scala的收益是什么?
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

它用于序列理解(就像Python的列表-理解和生成器,您可以在其中使用yield)。

它是结合应用的。for并将一个新元素写入结果序列。

简单示例(来自斯卡拉朗)

/** 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

在林克。

鲁比氏yield有不同的效果。


查看完整回答
反对 回复 2019-07-05
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

是的,就像厄威克说的,这和LINQ差不多select和Ruby和Python没有什么关系yield..基本上,在C#中你会写什么

from ... select ???

而在Scala中

for ... yield ???

同样重要的是要明白for-理解不仅适用于序列,而且适用于定义某些方法的任何类型,就像LINQ:

  • 如果您的类型定义了

    map

    ,它允许

    for

    -由单个生成器组成的表达式。
  • 如果它定义

    flatMap

    以及

    map

    ,它允许

    for

    -由几个发电机组成的表达式。
  • 如果它定义

    foreach

    ,它允许

    for

    -没有产量的回路(包括单发电机和多台发电机)。
  • 如果它定义

    filter

    ,它允许

    for

    -从

    if

    for

    表情。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 480 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信