We can use external crate rand
to generate random value.
In Cargo.toml
:
rand="0.7.3"
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);
}
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]
Top comments (0)