Scala forall的例子?

Jus*_*s12 44 scala

我试过谷歌搜索,找不到一个像样的forall例子.它有什么作用?为什么需要布尔函数?

请指出我的参考(Scaladoc除外).

dhg*_*dhg 83

forall方法采用p返回布尔值的函数.语义如下forall:true如果对于x集合中的每一个都返回,则返回p(x)true.

所以:

List(1,2,3).forall(x => x < 3)
Run Code Online (Sandbox Code Playgroud)

表示:true如果1,2和3小于3,false否则.在这种情况下,它将评估,false因为并非所有元素都小于3:3不小于3.

如果集合中至少有一个元素为true ,则exists返回类似的方法.truexp(x)

所以:

List(1,2,3).exists(x => x < 3)
Run Code Online (Sandbox Code Playgroud)

表示:true如果1,2和3 中的至少一个小于3,false否则.在这种情况下,它将评估,true因为某些元素小于3的情况:例如1小于3.

  • @ Jus12,是的,它使用`&&'进行校正,因为它进行了短路评估(如果发现'false',它会停止评估`foo`). (6认同)
  • 所以`forall(foo)`相当于`foldLeft(true)((x,y)=> x&foo(y))` (3认同)