我尝试了谷歌搜索,但找不到一个像样的forall示例。是干什么的呢?为什么它需要一个布尔函数?
请给我一个参考资料(除了Scaladoc)。
发布于 2012-09-23 04:00:09
forall方法接受返回布尔值的函数p。forall的语义是:如果对于集合中的每个x,p(x)都为true,则返回true。
所以:
List(1,2,3).forall(x => x < 3)表示:如果1、2和3小于3,则为true,否则为false。在这种情况下,它的计算结果为false,因为不是所有元素都小于3: 3不小于3。
还有一个类似的方法exists,如果集合中至少有一个元素x使p(x)为true,则该方法返回true。
所以:
List(1,2,3).exists(x => x < 3)表示:如果1、2和3中至少有一个小于3,则为true,否则为false。在这种情况下,它将计算为true,因为它是某些元素小于3的情况:例如,1小于3。
发布于 2013-01-06 10:52:03
下面是一个快速示例,演示如何使用Scala脚本使用此函数。
使用创建myScript.scala文件
println(args.forall(p => (p.equals("a"))))并使用以下命令调用它:
scala myScript.scala a a a // true
scala myScript.scala a b c // false发布于 2018-06-17 20:04:55
Scala的forall也是一个很好的工具,可以用early exist将逻辑和应用于布尔值列表
val evalResults: List[Boolean] = List(evaluateFunc1(), evaluateFunc2(), evaluateFunc3(), evaluateFunc4(), evaluateFunc5())
evalResults.forall(result => result == true)https://stackoverflow.com/questions/12547235
复制相似问题