削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎パイプラインスタイル: パイプラインスタイルは、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> が提供されるので、場合によっては要素数の多いコレクション・オブジェクトが中間結果として生成されるので注意してください。<!--関数合成を紹介しよう!-->
 
== メソッド ==