【发布时间】:2018-11-04 19:41:37
【问题描述】:
在我看来,一个选项是否是正确的返回类型应该取决于实现者。
我注意到当我尝试过滤或对项目使用其他收集方法时,它会消失。这仅仅是has_next 的替代品吗?它不会对性能/内存产生潜在影响吗?
【问题讨论】:
-
[].iter().next()应该怎么做? -
“它不会有潜在的性能/内存影响吗?”没有更多的任何
-
@trentcl 我想这是 Rust 中的一个优先事项,以避免对耗尽的迭代器产生恐慌。其他语言使用 has_next 然后在 next 上恐慌。在一个相当低级的结构上,这感觉就像是一个很大的开销。
-
@Stargateur 如果您在字节 (u8) 上创建迭代器,您将创建尽可能多的 Somes 有字节。
-
@thoredge 不,每次 一个 条目最多额外增加 8 个字节(通常甚至 0 个字节);移动到下一个
Item删除前一个。