0

scala で高次のメソッドが呼び出されるオブジェクトにアクセスする方法があるのだろうかと思っています。たとえば、次のコードがあるとします。

val list = List(1, 3, 4, -1, 2, 0)
val filtered = list filter(_ > 0)

フィルター メソッド内で、頭の値をテストしたいとします。どうすればそれを達成できますか? 何かのようなもの:

val filter = list filter(_ > 0 + head)
4

2 に答える 2

8

にアクセスしたときと同じ方法でアクセスしますfilter

val filter = list filter(_ > 0 + list.head)

は不変であるためList、これを安全に行うことができます。

リストで複数の操作をチェーンしている場合、最も簡単な解決策は中間を作成することvalです:

val first10 = x.getList() take 10
val filter = first10 filter(_ > 0 + first10.head)

私は操作を連鎖させるのが大好きですが、どちらにせよ、このほうが読みやすいことがよくあります。

于 2013-10-03T13:26:21.957 に答える