是否可以在Rust中声明一个不可变数组并将值分别分配给其元素

时间:2019-03-13 13:26:36

标签: arrays rust initialization

我想声明一个数组并想像这样初始化它   (也许在实际开发中不好,但我只是想弄清楚)

关键点在于: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在这里未初始化,那么我该怎么办? 否则不可能做这样的事

0 个答案:

没有答案