Ich implementiere FromIterator
für [MyStruct;4]
wo MyStruct
ist eine kleine Kopie Struktur. Meine aktuelle Implementierung istWas ist der beste Weg, um ein Stück von einem Iterator in Rust zu füllen?
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
}
Das funktioniert ganz gut, aber ich bin mir nicht sicher, dass die for
Schleife als idiomatische ist, wie es sein könnte. Gibt es vielleicht eine Methode wie Slice::fill(iter)
, die dies sauberer (und vielleicht effizienter) erreichen könnte?
Vielleicht können Sie einfach plain, alt [map] (https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.map) verwenden? – hellow