मैं 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)
जैसी कोई विधि है जो इसे और अधिक साफ (और शायद अधिक कुशलतापूर्वक) पूरा कर सकती है?
शायद आप केवल सादे, पुराने [मानचित्र] (https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.map) का उपयोग कर सकते हैं? – hellow