我正在为FromIterator
实施[MyStruct;4]
,其中MyStruct
是一个小型的复制结构。我目前的实施是
fn from_iter<I: IntoIterator<Item=MyStruct>>(iter: I) -> Self {
let mut retval = [Default::default();4];
for (ret, src) in retval.iter_mut().zip(iter) {
*ret = src;
}
retval
}
这很好用,但我不确定for
循环是否尽可能惯用。是否有像Slice::fill(iter)
这样的方法可以更干净地(也许更有效率)实现这一目标?