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)
Output:
List(2, 3, 4, 5, 6, 7, 8, 9)
List(2, 4, 6, 8)
为什么?我期待两者的输出相同。
dropWhile
丢弃所有物品在集合开始时其条件是true
。一旦第一个项目不满足条件,它就会停止丢弃。
filter
丢弃所有物品整个系列其中条件不成立。直到收集结束它才会停止。
就你而言,dropWhile
drops 1
但当它到达时停止2
因为条件_ % 2 != 0
是假的。
filter
另一方面,删除所有值_ % 2 == 0
为 false,即所有奇数值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)