检查 Traversable对象中的元素是否满足条件
检查 Traversable 对象中的所有元素是否满足某个断言,或者 是否存在某个元素满足断言。
解决方案:
1、forall
2、exist
forall
package main object Test { def main(args: Array[String]): Unit = { val t1 = Traversable(1 to 10: _*); println(t1); //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val b1 = t1.forall(_ <= 10); //def forall(p : Function1[A, Boolean]) : Boolean println(b1.getClass.getName); //boolean println(b1); //true val b2 = t1.forall(x => x > 10); println(b2.getClass.getName); //boolean println(b2); //false } }
//空集合 println(Traversable.empty[Int].forall(_ => false)); //true println(Traversable.empty[Int].forall(_ => true)); //true
forall()方法可以测试所有的元素,如果所有元素使用断言p返回的结果都是true,那么forall()方法则返回true。
forall 是对所有元素的测试。
exist
package main object Test { def main(args: Array[String]): Unit = { val t1 = Traversable(1 to 10: _*); println(t1); //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val b1 = t1.exists(_ == 5); //def exists(p : Function1[A, Boolean]) : Boolean println(b1.getClass.getName); //boolean println(b1); //true val b2 = t1.exists(x => x > 10); println(b2.getClass.getName); //boolean println(b2); //false val b3 = t1.exists(x => x < 10); println(b3.getClass.getName); //boolean println(b3); //true } }
exist()是用来检查某个元素是否满足断言的。
只要找到一个元素,那么运行此方法返回的结果就是true,不像 forall 要检查所有元素。

浙公网安备 33010602011771号