从0到255生成随机u8

Fat*_*ror 8 random rust

我正在尝试制作一个程序,生成从0到255的随机数.看起来很简单!我这样做了:

extern crate rand;
use rand::Rng;

fn main() {
    println!("Guess the number!");
    let random_number: u8 = rand::thread_rng().gen_range(0, 255);

    println!("Your random number is {}", random_number);
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但这种方法的问题是不包括数字255:

gen_range方法将两个数字作为参数,并在它们之间生成一个随机数.它包含在下限但在上限独占.

当我尝试这样做时:

let random_number: u8 = rand::thread_rng().gen_range(0, 256);
Run Code Online (Sandbox Code Playgroud)

Rust将生成警告,因为u8只接受0到255之间的值.

warning: literal out of range for u8
 --> src/main.rs:6:61
  |
6 |     let random_number: u8 = rand::thread_rng().gen_range(0, 256);
  |                                                             ^^^
  |
  = note: #[warn(overflowing_literals)] on by default
Run Code Online (Sandbox Code Playgroud)

如何在不改变random_number变量类型的情况下解决这个问题?

Fra*_*gné 7

请改用该gen方法.此方法将从指定类型的整个可能值集生成随机值.

extern crate rand;

use rand::Rng;

fn main() {
    println!("Guess the number!");
    let random_number: u8 = rand::thread_rng().gen();

    println!("Your random number is {}", random_number);
}
Run Code Online (Sandbox Code Playgroud)