我想声明一个数组并想像这样初始化它 (也许在实际开发中不好,但我只是想弄清楚)
关键点在于:1. h
是不可变的。2.分别分配(同时初始化)h[0]
h[1]
和h[2]
。
use std::thread;
use std::time::Duration;
use rand::Rng; // 0.6.5
fn main() {
loop {
let h: [u32; 3];
h[0] = rand::thread_rng().gen_range(1, 101);
h[1] = rand::thread_rng().gen_range(1, 101);
h[2] = rand::thread_rng().gen_range(1, 101);
println!("{:?}", h);
thread::sleep(Duration::from_secs(2));
}
}
但是编译器这么说
error[E0381]: use of possibly uninitialized variable: `h`
--> src\main.rs:11:9
|
11 | h[0] = rand::thread_rng().gen_range(1, 101);
| ^^^^ use of possibly uninitialized `h`
error: aborting due to previous error
当然h
在这里未初始化,那么我该怎么办?
否则不可能做这样的事