我尝试了谷歌搜索,但找不到一个像样的forall例子。它有什么作用?为什么它需要一个布尔函数?
请给我一个参考(Scaladoc除外)。
该forall方法采用一个p返回布尔值的函数。的语义forall说:如果集合中true的每一个都为真,则返回。xp(x)
所以:
List(1,2,3).forall(x => x < 3)
意思是:true如果1、2、3小于3,false否则。在这种情况下,它将评估为,false因为并非所有元素都小于 3:3 不小于 3。
如果集合中至少有一个元素为真,则有一个类似的方法exists返回。truexp(x)
所以:
List(1,2,3).exists(x => x < 3)
表示:true如果1、2、3中至少有一个false小于3,否则。在这种情况下,它将评估为,true因为某些元素小于 3:例如 1 小于 3。
一个快速示例,说明如何使用Scala脚本使用此功能。
创建一个myScript.scala文件
println(args.forall(p => (p.equals("a"))))
并调用它
scala myScript.scala a a a // true
scala myScript.scala a b c // false
Scalaforall也是一个很好的工具,可以执行一些操作,例如应用逻辑和早期存在的布尔值列表:
val evalResults: List[Boolean] = List(evaluateFunc1(), evaluateFunc2(), evaluateFunc3(), evaluateFunc4(), evaluateFunc5())
evalResults.forall(result => result == true)