5
[MyStruct;4]
の場合はFromIterator
を実装しています。ここで、MyStruct
は小さなコピー構造体です。私の現在の実装では、しかし、私はfor
ループはそれができるよう慣用的であることを確認しないんだけど、これはうまく動作しますRustのイテレータからスライスを塗りつぶす最も良い方法は何ですか?
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
}
です。おそらくこれをもっときれいに(そしておそらくより効率的に)達成できる方法、Slice::fill(iter)
がありますか?
普通の古い[地図](https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.map)を使うことができますか? – hellow