2017-12-09 94 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 विधि तर्कों के रूप दो नंबर लेता है और उन दोनों के बीच एक यादृच्छिक संख्या उत्पन्न करता है। यह निचले बाउंड पर समावेशी है लेकिन ऊपरी बाउंड पर अनन्य है।

जब मैं यह करने के लिए प्रयास करें: क्योंकि u8 केवल 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 

मैं कैसे बिना इस के आसपास काम करने के लिए 0 से मान स्वीकार

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); 
} 
संबंधित मुद्दे