У меня возникли проблемы с инициализацией массива с фиксированной длиной. 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
черты, но ржавчина не кажется, называет это по умолчанию сродни конструктору C++.
Каков правильный способ инициализации массива с фиксированной длиной? Я бы хотел сделать эффективную инициализацию на месте, а не какую-то копию.
Похожие: Why is the Copy trait needed for default (struct valued) array initialization?
Похожие: Is there a way to not have to initialize arrays twice?
* Ржавчина не кажется, называют это по умолчанию * - это правильно , Символ 'Default' не используется компилятором каким-либо особым образом. Это только для программиста. – Shepmaster