1. ホーム
  2. スカラ

[解決済み】Scalaのyieldとは何ですか?

2022-04-14 04:52:12

質問

RubyとPythonのyieldは理解できました。Scalaのyieldは何をするのですか?

どのように解決するのですか?

で使用されています。 配列理解 (Pythonのリストコンパージョンやジェネレータのように yield もあります)。

と組み合わせて適用されます。 for で、出来上がったシーケンスに新しい要素を書き込む。

簡単な例 (from 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 

をLinqで表示します。

Rubyの yield は別の効果があります。