我正在尝试制作一个程序,生成从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
变量类型的情况下解决这个问题?
请改用该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)
归档时间: |
|
查看次数: |
725 次 |
最近记录: |