是否可以声明一个不可变的Array并在Rust [duplicate]中分别为其元素赋值

问题描述 投票:0回答:1

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

关键点在于: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在这里没有初始化,所以我该怎么办?或者不可能做这样的事情

arrays rust initialization
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.