如何在堆栈上创建按值迭代器

Fre*_*ios 4 iterator rust

我可以在堆中创建一个消耗迭代器:

vec![1, 10, 100].into_iter()
Run Code Online (Sandbox Code Playgroud)

我也可以在堆栈上创建一个借用元素的迭代器:

[1, 10, 100].iter()
Run Code Online (Sandbox Code Playgroud)

但如果我写这个:

[1, 10, 100].into_iter()
Run Code Online (Sandbox Code Playgroud)

这不是消耗迭代器,因为[T; _]::into_iter不存在:IntoIterator仅针对借用版本(aka slice)实现.是否有一种简单的方法(最好是在stdlib中)在堆栈上创建消耗迭代器?


我知道[1, 10, 100].iter().cloned()可以做到,但这要求物品可以克隆.

DK.*_*DK. 6

是否有一种简单的方法(最好是在stdlib中)在堆栈上创建消耗迭代器?

没有.

是否有一种简单的方法(最好是在std lib中)在堆栈上创建一个消耗迭代器?

是.使用类似的包,stacksmallvec提供实现的数组类型IntoIterator.