「Scala」の版間の差分
削除された内容 追加された内容
タグ: 2017年版ソースエディター |
→パイプラインスタイル: パイプラインスタイルは、JavaScriptなどでよく使うメソッドチェインですが、イテレータメソッドが演算子の様に見える書き方です。 タグ: 2017年版ソースエディター |
||
310 行
Vector(0, 1, 4, 9, 16)
</syntaxhighlight>
===== パイプラインスタイル =====
パイプラインスタイルは、JavaScriptなどでよく使うメソッドチェインですが、イテレータメソッドが演算子の様に見える書き方です。
[[#For と Range と if|for と Range と if]]の例をパイプラインスタイルで置換えてみます。
;例:<syntaxhighlight lang=Scala highlight=0 line>
object Main extends App {
// for (i <- 0 to 10 if i % 2 != 0) println(i)
(0 to 10) filter { _ % 2 != 0 } foreach { println(_) }
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
1
3
5
7
9
</syntaxhighlight>
関数合成ではないので、<code>(0 to 10) filter { _ % 2 != 0 }</code> が先に評価され、そのオブジェクトに <code> .foreach({ println(_) })</code> が提供されるので、場合によっては要素数の多いコレクション・オブジェクトが中間結果として生成されるので注意してください。<!--関数合成を紹介しよう!-->
== メソッド ==
|