#iterator #array #owning #std #deprecated

已废弃 array_iterator

基于数组的拥有型迭代器

11 个版本 (5 个稳定版)

1.8.0 2021年7月5日
1.5.0 2021年5月1日
1.4.0 2021年3月25日
1.3.0 2021年1月11日
0.1.0 2019年3月15日

#12 in #拥有

每月下载量 48
2 crates 使用

Apache-2.0

13KB
209 行代码

Array Iterator (已废弃)

std::array::IntoIter 现在是稳定的,请使用它代替!. 我将继续维护这个crate,但计划在未来发布一个更新,该更新将产生废弃警告。

迁移

您可以使用 comby 轻松迁移。

comby \
	'array_iterator::ArrayIterator::new(:[args])' \
	'std::array::IntoIter::new(:[args])' \
	.rs -in-place

您也可以删除依赖。这可以使用 cargo-edit 自动完成。

cargo rm array_iterator
cargo check

文档

文档


lib.rs:

这个crate已废弃,因为这个功能自1.15.0起已在std中实现。请使用 std::array::IntoIter::new 代替。

fn pair_iter(a: i32, b: i32) -> impl Iterator<Item=i32> {
	std::array::IntoIter::new([a, b])
}

这个crate将继续在未来一段时间内接收错误和安全修复。不会添加新功能、文档或其他更改。

以下为之前的文档


允许从数组创建拥有型迭代器。这对于固定大小的迭代器非常有用。尝试编写以下函数

fn pair_iter(a: i32, b: i32) -> impl Iterator<Item=i32> {
	unimplemented!()
}

这是因为大多数迭代器不拥有它们正在迭代的值。一个解决方案是

fn pair_iter(a: i32, b: i32) -> impl Iterator<Item=i32> {
	Some(a).into_iter().chain(Some(b))
}

assert_eq!(pair_iter(1, 2).collect::<Vec<_>>(), &[1, 2]);

这个crate允许将数组转换为拥有型迭代器,非常适合短、固定大小的迭代器。

use array_iterator::ArrayIterator;

fn pair_iter(a: i32, b: i32) -> impl Iterator<Item=i32> {
	ArrayIterator::new([a, b])
}

assert_eq!(pair_iter(1, 2).collect::<Vec<_>>(), &[1, 2]);

无运行时依赖