当为 true 时,Scala 是否存在于满足谓词的第一个元素?



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

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

在本地,它会立即给出答案。在斯卡斯蒂,大部分延迟是由于互联网连接造成的。

这会在 101 或 109 上停止,还是会经历其余部分?

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

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

最新更新