Rust 我如何更改a&;amp;mut可窥视<;I>;进入a&;[u8]?
我有一个类型为Rust 我如何更改a&;amp;mut可窥视<;I>;进入a&;[u8]?,rust,Rust,我有一个类型为&mut-peakable的值,我想用它作为其他函数的输入值,该函数获取类型为和[u8]的值。如何更改它的类型?Peekable是一个迭代器,它提供了迭代器中的元素并将其包装起来(有一个转折点,您可以在前面查看一个,但这与此处无关) &[u8]是内存中连续排列的字节片 所以你有两个问题: 迭代器I可以是任何东西。假设您从通用上下文(如foo())获得I,则需要确保迭代器提供u8,或可转换为u8的内容 peakable后面的数据不必存在于内存中。它可以从一个范围创建,例如(0..10
&mut-peakable
的值,我想用它作为其他函数的输入值,该函数获取类型为和[u8]
的值。如何更改它的类型?Peekable
是一个迭代器,它提供了迭代器中的元素并将其包装起来(有一个转折点,您可以在前面查看一个,但这与此处无关)
&[u8]
是内存中连续排列的字节片
所以你有两个问题:
I
可以是任何东西。假设您从通用上下文(如foo()
)获得I
,则需要确保迭代器提供u8
,或可转换为u8
的内容peakable
后面的数据不必存在于内存中。它可以从一个范围创建,例如(0..1000)
,或者在一个散乱数据的HashMap
上迭代。您需要将其复制到保证连续布局的向量u8
和其中I:Iterator
,或者要求使用其中I:Iterator
将类型转换为u8
。然后您将能够执行let iterator=iterator.map(|el | el.into())
以获得u8
元素的迭代器
一旦你有了它,你可以把它们收集到一个向量中,然后得到向量的一个切片:
让vec:vec=iterator.collect();
let slice=&vec[…];