我在初始化一个固定长度的数组时遇到了问题。到目前为止,我的尝试都导致了相同的错误:"使用可能未初始化的变量:foo_array
":
#[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
特质,但Rust似乎不会默认调用它,类似于C++构造函数。
有什么正确的方法来初始化一个定长数组吗?我想要进行高效的原地初始化而不是某种类型的复制。
Default
trait 在编译器中没有被特殊使用,它只是为程序员提供的一种工具。 - Shepmaster