首页 > 解决方案 > 如果为真,Scala 是否存在于满足谓词的第一个元素处?

问题描述

我的直觉是它当然应该,当然也应该。但是我该如何检查呢?计算机是如此之快,以至于我不会注意到几毫秒的差异。例如:

(2 to Math.floor(Math.sqrt(121330189)).toInt).exists(121330189 % _ == 0)

在当地,它立即给出了答案。在 Scastie 上,大部分延迟是由于 Internet 连接造成的。

这会停在 101 或 109 还是会通过其余的?

标签: scala

解决方案


它提前停止,例如参见https://github.com/scala/scala/blob/v2.12.0/src/library/scala/collection/Iterator.scala#L958

您可以通过向 predicte 函数添加一些工具(打印)来确定它被调用的次数,从而在小范围内进行测试。


推荐阅读