生成随机数、随机字符、符合一定分布的抽样值,是日常开发中经常遇到的场景。本文解释Rust中相关的工具包。并通过示例说明如何生成随机值。
rand包
该包提供随机数生成器:rand::Rng
, 其中的方法 rand::thread_rng
可以生成随机数,其中每个线程有相应的初始化生成器。使用之前需要加载依赖,在Cargo.toml
文件中增加依赖,然后执行cargo build 加载依赖:
[dependencies]
rand_distr = "0.4.3"
rand = "0.8.5"
rand包提供了随机数生成器,rand_distr是数据分布抽样的包,后面会提及。
生成随机数
rand包生成的整数符合在数据类型范围内的均匀分布;浮点数是0~1(不包括1)之间的均匀分布值。
use rand::Rng;
fn main() {
let mut rng = rand::thread_rng();
let n1: u8 = rng.gen();
let n2: u16 = rng.gen();
println!("Random u8: {}", n1);
println!("Random u16: {}", n2);
println!("Random u32: {}", rng.gen::<u32>());
println!("Random i32: {}", rng.gen::<i32>())