gpt4 book ai didi

scala - 如果 n 小于大小,则 xs.sliding(n) 的行为不一致?

转载 作者:行者123 更新时间:2023-12-03 20:26:03 26 4
gpt4 key购买 nike

根据scaladoc,sliding() 返回...
“生成大小为 size 的可迭代集合的迭代器,如果元素少于 size,则最后一个也是唯一的元素将被截断。”

对我来说,直觉上,sliding(n) 会返回一个包含 n 个元素的滑动窗口 如果可用 .对于当前的实现,我需要执行额外的检查以确保我没有得到 1 或 2 个元素的列表。

scala> val xs = List(1, 2)
xs: List[Int] = List(1, 2)

scala> xs.sliding(3).toList
res2: List[List[Int]] = List(List(1, 2))

我希望这里有一个空列表。为什么sliding() 以这种方式实现?

最佳答案

was a mistake ,但自 2.9 起未修复。每个人偶尔都会犯设计错误,一旦进入库,将其删除是一项非同寻常的任务。

解决方法:添加过滤器。

xs.sliding(3).filter(_.size==3).toList

关于scala - 如果 n 小于大小,则 xs.sliding(n) 的行为不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7958712/

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