1

Scalaについて読んで、コレクションに作用するexistsメソッドがコードの重複などをどのように減らすか.

コレクションに作用する exists に似た関数を自分で作成するにはどうすればよいでしょうか? 出来ますか?

特定の型に作用する ac# 拡張メソッドのようなものです。

4

1 に答える 1

9

確かに、暗黙の変換を使用してそれを行うことができます。

scala> implicit def foo[A](xs: Seq[A]) = new {
     |   def any(f: A => Boolean): Boolean = {
     |     for(x <- xs; if f(x)) return true
     |     false
     |   }
     | }
foo: [A](xs: Seq[A])java.lang.Object{def any(f: A => Boolean): Boolean}

scala> Seq(9, 11, 34).any(_ > 10)
res3: Boolean = true

scala> Seq(9, 11, 34).any(_ > 35)
res4: Boolean = false
于 2012-06-07T16:41:45.530 に答える