亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 548 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號