gpt4 book ai didi

Scala dropWhile 与过滤器

转载 作者:行者123 更新时间:2023-12-02 00:31:46 24 4
gpt4 key购买 nike

val xs = Iterator
.from(1)
.dropWhile(_ % 2 != 0)
.takeWhile(_ < 10)
.toList
val ys = Iterator
.from(1)
.filter(_ % 2 == 0)
.takeWhile(_ < 10)
.toList
println(xs)
println(ys)

输出:

List(2, 3, 4, 5, 6, 7, 8, 9)
List(2, 4, 6, 8)

为什么?我期待两者的输出相同。

最佳答案

dropWhile 丢弃集合开始条件为true 的所有项。一旦第一项不符合条件,它就会停止丢弃。

filter 丢弃整个集合中条件不为真的所有项。直到采集结束才停止。

在您的情况下,dropWhile 丢弃 1 但在到达 2 时停止,因为条件 _ % 2 != 0 为假。

另一方面,

filter 会丢弃所有 _ % 2 == 0 为假的值,即所有奇数。

关于Scala dropWhile 与过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51583361/

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