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

厦门海沧网站建设seo技术好的培训机构

厦门海沧网站建设,seo技术好的培训机构,给个网站能用的2022,做部门内部使用的网站 用什么开发文章目录 生成随机值生成随机数生成范围内随机数生成自定义类型随机值从一组字母数字字符创建随机密码从一组用户定义字符创建随机密码 总结 生成随机值 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.hotlads.com/news/5448.html

相关文章:

  • 做恋足的网站能赚钱吗百度快照
  • 关于做网站的外语文献网站性能优化的方法有哪些
  • 银川兴庆建设局网站百度开户联系方式
  • 潍坊医院网站建设广州网络推广哪家好
  • wordpress 存储空间河源网站seo
  • 做网站阳泉网络销售真恶心
  • 主流的自助建站网站郑州seo课程
  • 网站建设的费用明细关键词优化一般收费价格
  • 福州网站建设托管win7优化工具哪个好用
  • 网站营销公司宁波seo外包服务
  • 房产网站设计模板推广
  • 一站式服务英文无锡网站制作
  • 专业的网站开发团队网络营销推广活动有哪些
  • 做爰网站有哪些广东队对阵广州队
  • 长春做商业平台网站宁波seo外包代运营
  • 网站建设策划方案重庆森林粤语完整版在线观看免费
  • 网站建设勹金手指科捷14上海专业seo公司
  • 厦门建设工程信息造价网站友情链接怎么连
  • 合肥高端网站开发企业建网站一般要多少钱
  • 自己做的网站怎么上传到网络百度在全国有哪些代理商
  • 手机网站技术方案济南seo公司报价
  • 莱州网站制作seo优化前景
  • 建设的网站百度搜不到网络域名怎么查
  • 创业小项目山西网络营销seo
  • 传奇私服广告网站怎么做指数基金是什么意思
  • wordpress最快仿站郑州今天刚刚发生的新闻
  • jsp购物网站开发 论文如何做网站推广优化
  • 企业建立网站的原因欧美seo查询
  • b2b网站优化怎么做seo搜索优化邵阳
  • 怎么用新浪云做淘宝客网站百度网络推广怎么收费