val
Scalaでは、割り当てのある多くの小さな式よりも大きな連鎖式を書くことを好む傾向があります。私の会社では、このタイプのコードのスタイルを進化させてきました。これは完全に工夫された例です(アイデアは、連鎖した呼び出しがたくさんある式を表示することです):
import scala.util.Random
val table = (1 to 10) map { (Random.nextInt(100), _) } toMap
def foo: List[Int] =
(1 to 100)
.view
.map { _ + 3 }
.filter { _ > 10 }
.flatMap { table.get }
.take(3)
.toList
DanielSpiewakのScalaスタイルガイド(pdf)は、私が一般的に気に入っているものですが、複数行の式については説明していませんが、連鎖メソッド呼び出しの先頭のドット表記が正しくない可能性があることを示唆しています(ドキュメント:メソッド呼び出し/高階関数を参照)。このように直接。
上記の関数を書くための別の、より受け入れられた/慣用的な方法はありfoo
ますか?
更新:2011年6月28日
以下にたくさんの素晴らしい答えと議論があります。100%「この方法でやらなければならない」という答えはないようですので、現在最も人気のある回答を投票で受け入れます。これは現在、コンプリヘンションベースです。個人的には、今のところ先頭のドット表記に固執し、それに伴うリスクを受け入れるつもりだと思います。