मुझे एक निश्चित लंबाई सरणी शुरू करने में परेशानी हो रही है। My attempts so far all result in the same "use of possibly uninitialized variable: foo_array
" error:एक निश्चित लंबाई सरणी शुरू करने का सही तरीका क्या है?
#[derive(Debug)]
struct Foo { a: u32, b: u32 }
impl Default for Foo {
fn default() -> Foo { Foo{a:1, b:2} }
}
pub fn main() {
let mut foo_array: [Foo; 10];
// Do something here to in-place initialize foo_array?
for f in foo_array.iter() {
println!("{:?}", f);
}
}
error[E0381]: use of possibly uninitialized variable: `foo_array`
--> src/main.rs:13:14
|
13 | for f in foo_array.iter() {
| ^^^^^^^^^ use of possibly uninitialized `foo_array`
मैं Default
विशेषता लागू किया, लेकिन जंग डिफ़ॉल्ट एक सी ++ निर्माता के सदृश द्वारा इस कॉल करने के लिए प्रतीत नहीं होता।
एक निश्चित लंबाई सरणी प्रारंभ करने में उचित तरीका क्या है? मैं किसी प्रकार की प्रतिलिपि के बजाय एक कुशल इन-प्लेस प्रारंभ करना चाहता हूं।
संबंधित: Why is the Copy trait needed for default (struct valued) array initialization?
संबंधित: Is there a way to not have to initialize arrays twice?
* जंग डिफ़ॉल्ट * द्वारा इस कॉल करने के लिए प्रतीत नहीं होता है - यह सही है: यू
arrayvec
crate उपयोग कर सकते हैं । किसी भी विशेष तरीके से कंपाइलर द्वारा 'डिफ़ॉल्ट' विशेषता का उपयोग नहीं किया जाता है। यह केवल प्रोग्रामर के लिए उपयोग है। – Shepmaster