当前位置: 首页 > news >正文

深圳东道建设集团网站城市分类信息网站建设

深圳东道建设集团网站,城市分类信息网站建设,东莞企业网站制作推广运营,物业公司排名2020最新排名文章目录 生成随机值生成随机数生成范围内随机数生成自定义类型随机值从一组字母数字字符创建随机密码从一组用户定义字符创建随机密码 总结 生成随机值 rust中官方并没有像以他语言一样,rust并没有官方并没有提供生成随机数的工具,所以我们要借助rand包…

文章目录

  • 生成随机值
    • 生成随机数
    • 生成范围内随机数
    • 生成自定义类型随机值
    • 从一组字母数字字符创建随机密码
    • 从一组用户定义字符创建随机密码
  • 总结

生成随机值

rust中官方并没有像以他语言一样,rust并没有官方并没有提供生成随机数的工具,所以我们要借助rand包进行生成随机数。这里我们使用现在使用罪为广泛的rand包只需要引入以下依赖就能够使用。rand = "0.8.5"

生成随机数

在随机数生成器 rand::Rng 的帮助下,通过 rand::thread_rng 生成随机数。可以开启多个线程,每个线程都有一个初始化的生成器。整数在其类型范围内均匀分布,浮点数是从 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>());println!("Random float: {}", rng.gen::<f64>());
}

结果

Random u8: 247
Random u16: 46458
Random u32: 2649532043
Random i32: 1393744920
Random float: 0.5923489382636902

生成范围内随机数

使用 Rng::gen_range,在半开放的 [0, 10) 范围内(不包括 10)生成一个随机值。

use rand::Rng;fn main() {let mut rng = rand::thread_rng();println!("Integer: {}", rng.gen_range(0..10));println!("Float: {}", rng.gen_range(0.0..10.0));
}

结果

   let mut rng = rand::thread_rng();println!("Integer: {}", rng.gen_range(0..10));println!("Float: {}", rng.gen_range(0.0..10.0));

使用 Uniform 模块可以得到均匀分布的值。下述代码和上述代码具有相同的效果,但在相同范围内重复生成数字时,下述代码性能可能会更好。


use rand::distributions::{Distribution, Uniform};fn main() {let mut rng = rand::thread_rng();let die = Uniform::from(1..7);loop {let throw = die.sample(&mut rng);println!("Roll the die: {}", throw);if throw == 6 {break;}}
}

结果

Roll the die: 1
Roll the die: 2
Roll the die: 6

生成自定义类型随机值

随机生成一个元组 (i32, bool, f64) 和用户定义类型为 Point 的变量。为 Standard 实现 Distribution trait,以允许随机生成。

use rand::Rng;
use rand::distributions::{Distribution, Standard};#[derive(Debug)]
struct Point {x: i32,y: i32,
}impl Distribution<Point> for Standard {fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Point {let (rand_x, rand_y) = rng.gen();Point {x: rand_x,y: rand_y,}}
}fn main() {let mut rng = rand::thread_rng();let rand_tuple = rng.gen::<(i32, bool, f64)>();let rand_point: Point = rng.gen();println!("Random tuple: {:?}", rand_tuple);println!("Random Point: {:?}", rand_point);
}

结果

Random tuple: (590118681, false, 0.7548409339548463)
Random Point: Point { x: 914499268, y: 795986012 }

从一组字母数字字符创建随机密码

随机生成一个给定长度的 ASCII 字符串,范围为 A-Z,a-z,0-9,使用字母数字样本。

use rand::{thread_rng, Rng};
use rand::distributions::Alphanumeric;fn main() {let rand_string: String = thread_rng().sample_iter(&Alphanumeric).take(30).map(char::from).collect();println!("{}", rand_string);
}

结果

fwaZUzdIkK1p78fyNvh44Od5gcr3BL

从一组用户定义字符创建随机密码

使用用户自定义的字节字符串,使用 gen_range 函数,随机生成一个给定长度的 ASCII 字符串。

use rand::Rng;
fn main() {const CHARSET: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\abcdefghijklmnopqrstuvwxyz\0123456789)(*&^%$#@!~";const PASSWORD_LEN: usize = 30;let mut rng = rand::thread_rng();let password: String = (0..PASSWORD_LEN).map(|_| {let idx = rng.gen_range(0..CHARSET.len());CHARSET[idx] as char}).collect();println!("{:?}", password);
}

结果

"F@QNgOrsviJ2tqM$zOSJSR^Hjevvce"

总结

以上就是rand包的简单使用,如果想要更要了解rand包的使用,还要多查阅官方文档

http://www.yayakq.cn/news/265383/

相关文章:

  • 成都创新互联科技有限公司seo手机优化方法
  • 郑州网站制作哪家便宜企业网站建设要素
  • 医美行业网站建设wordpress导航菜单
  • 网站快速备案安全吗php不用框架怎么做网站
  • 上传wordpress网站张掖艺能网站建设
  • 做特产的网站开张怎么宣传如何加强校园网站建设
  • 电商 网站建设文字陇南网站设计
  • 高端网站改版顾问前端开发主要做什么
  • 大连网站建设企业网站建设的风险分析
  • wdcp 网站迁移本人有资金寻求合作
  • 机关单位 网站建设方案策划书建站哪个平台好用
  • 货架 网站建设 牛商网石景山区公司网站建设
  • 域名绑定网站需要多久网站开店前的四项基本建设
  • 网站后台账号密码破解郑州营销策划公司排行榜
  • wap网站 开发WordPress邮箱内容修改
  • 建设银行投资网站首页网页设计入门书籍
  • 网站面包屑导航论坛内网站怎么建设
  • 绿色食品网站建设论文调用wordpress
  • 著名建筑网站学网站开发看什么书
  • 设计 微网站做应用级网站用什么语言好
  • 网站怎么做才能赚钱wordpress教材
  • 个人的网站建设目标腾讯街景地图实景下载
  • 如何来建设网站怎样进网站空间
  • 照明做外贸的有那些网站广州开发区投资集团
  • 三拼域名做网站长不长吉林大学建设工程学院网站
  • 滁州建设管理网站宁波建站平台
  • 做企业网站需要准备什么佛山大沥
  • 南城网站建设公司方案蓝色主题的网站模板
  • 全国建设工程执业资格注册中心网站ps网站页面设计教程
  • 甘肃省通信管理局 网站备案网站建设与电子商务的教案