这个问题在这里已有答案:
我想声明一个数组并希望像这样初始化它(也许它在实际开发中不好,但我只是想弄明白)
关键点在于: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
在这里没有初始化,所以我该怎么办?或者不可能做这样的事情