我尝试了谷歌搜索,但找不到一个像样的forall
例子。它有什么作用?为什么它需要一个布尔函数?
请给我一个参考(Scaladoc除外)。
该forall
方法采用一个p
返回布尔值的函数。的语义forall
说:如果集合中true
的每一个都为真,则返回。x
p(x)
所以:
List(1,2,3).forall(x => x < 3)
意思是:true
如果1、2、3小于3,false
否则。在这种情况下,它将评估为,false
因为并非所有元素都小于 3:3 不小于 3。
如果集合中至少有一个元素为真,则有一个类似的方法exists
返回。true
x
p(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)