2017-12-09 7 views
6

0から255の範囲の乱数を生成するプログラムを作成しようとしています。それはとても簡単です!私はこれをした:0から255までのランダムなu8を生成

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); 
} 

これはうまく動作しますが、このアプローチの問題点がthe number 255 will not be includedことです:

gen_rangeメソッドは、引数として2つの数値を取り、それらの間の乱数を生成します。これは下限に含まれていますが上限には排他的です。

私はこれをやろう: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 

を受け入れるため

let random_number: u8 = rand::thread_rng().gen_range(0, 256); 

錆が警告を生成します変数random_numberのタイプを変更しますか?

答えて

6

代わりに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); 
} 
関連する問題