Day39:Generate random value - 100DayOfRust

bitecode

BC

Posted on May 9, 2020

Day39:Generate random value - 100DayOfRust

We can use external crate rand to generate random value.

In Cargo.toml:

rand="0.7.3"
Enter fullscreen mode Exit fullscreen mode

In main.rs:

use rand::{prelude::*, Rng, distributions::Alphanumeric};
// Rng stands for "random number generator"

fn main() {
    let num: u32 = rand::random();
    println!("generated rand integer: {}", num);

    let c: char = rand::random();
    println!("generated rand char: {}", c);

    let mut rng = rand::thread_rng();
    // gen function is a generic-type function
    let b1: bool = rng.gen();
    println!("generated boolean is {}", b1);

    let n1: u32 = rng.gen();
    println!("generated integer is {}", n1);

    let f1: f32 = rng.gen();
    println!("generated float is {}", f1);

    // generate number within range
    let range_num = rng.gen_range(0, 10);
    println!("number b/t 0-10 is {}", range_num);

    let range_decimal = rng.gen_range(0.0, 1.0);
    println!("number b/t 0-1 is {}", range_decimal);

    // generate a string with specified length
    let rand_str: String = rng.sample_iter(&Alphanumeric).take(15).collect();
    println!("generated random string: {}", rand_str);

    // shuffle some array
    let mut nums: Vec<i32> = (1..10).collect();
    // .shuffle need rand::prelude::*
    nums.shuffle(&mut rng);
    println!("num list: {:?}", nums);
}
Enter fullscreen mode Exit fullscreen mode

Run it cargo run:

generated rand integer: 2802536511
generated rand char: 񭌀
generated boolean is true
generated integer is 497331788
generated float is 0.0054394007
number b/t 0-10 is 3
number b/t 0-1 is 0.23074173856274816
generated random string: 97lbEyO3SVJgt7k
num list: [8, 1, 2, 3, 5, 4, 9, 6, 7]
Enter fullscreen mode Exit fullscreen mode

Reference:

💖 💪 🙅 🚩
bitecode
BC

Posted on May 9, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

December Surely Looks Busy!
opensource December Surely Looks Busy!

November 29, 2024

December Surely Looks Busy!
opensource December Surely Looks Busy!

November 29, 2024

Daemons on macOS with Rust
undefined Daemons on macOS with Rust

November 29, 2024