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 回答