gpt4 book ai didi

scala - 理解 forall 并存在空列表上的输出

转载 作者:行者123 更新时间:2023-12-04 04:51:50 24 4
gpt4 key购买 nike

scala> val l = List()
l: List[Nothing] = List()

scala> l.forall(x=>false)
res0: Boolean = true

scala> l.forall(x=>true)
res1: Boolean = true

scala> l.exists(x=>false)
res2: Boolean = false

scala> l.exists(x=>true)
res3: Boolean = false

对于以上 2 个谓词,既然列表中不存在元素,那么 forall 怎么返回 true?我很迷惑。有人可以帮忙解释一下吗?

最佳答案

你可以改写 forall意味着列表中没有任何元素违反给定的谓词。如果没有元素,它们都不会违反它。

forall 的源代码如果集合为空,则显式返回 true:

def forall(p: A => Boolean): Boolean = {
var these = this
while (!these.isEmpty) {
...
}
true
}

关于scala - 理解 forall 并存在空列表上的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15981599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com