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

网站内链代码北京网络职业学院怎么样

网站内链代码,北京网络职业学院怎么样,网络科技有限公司起名大全,西安新闻头条最新消息案例出处是《Rust权威指南》#xff0c;书中有更加详细的解释。从这个例子中#xff0c;我们可以了解到 rust 的两个操作#xff1a; 如何从控制台读取用户输入rust 如何生成随机数 代码格式化 编译器可在保存时对代码做格式化处理#xff0c;底层调用 rustfmt 来实现书中有更加详细的解释。从这个例子中我们可以了解到 rust 的两个操作 如何从控制台读取用户输入rust 如何生成随机数 代码格式化 编译器可在保存时对代码做格式化处理底层调用 rustfmt 来实现代码内容基本和书中内容一致。代码中使用 use 语句显示的导入了标准库 std 中的 io 和 cmp 包因为 rand包并不在标准库中所以我们在 dependencies 声明中引入 rand 包。 use rand::Rng; use std::{cmp::Ordering, io};fn main() {let secret_number rand::thread_rng().gen_range(1, 101);loop {let mut guess String::new();io::stdin().read_line(mut guess).expect(failed to read line);let guess: u32 match guess.trim().parse() {Ok(num) num,Err(err) {println!(parse error: {err});continue;}};match guess.cmp(secret_number) {Ordering::Equal {println!(success);break;}Ordering::Greater println!(too big),Ordering::Less println!(too small),}} } 从控制台读取输入 io::stdin() 中的::语法声明stdin是io类型的一个关联函数rust 会针对类型本身来定义函数而不是针对某个特定实例同样还有 String::new() 方法调用。 read_line 将控制台输入的内容存储到传入的参数中同时返回 io::Result 类型值。这个类型属于枚举类型rust 主要用来做错误处理。 生成随机数 针对 dependencies 中 rand 包的声明rust 按照标准的语义化版本来处理版本号。版本声明中的 0.3.14实际上是^0.3.14的一个简写它表示“任何与0.3.14版本公共API相兼容的版本” [dependencies] rand 0.3.14程序最终使用的 rand 版本会记录在 Cargo.lock 文件中通过 Cargo.lock 中详细的版本依赖信息才保证了我们任何时候编译的结果都是相同的。除第一次构建程序外再次构建程序时Cargo 会优先检查 Cargo.lock假如文件中存在已经指明具体版本的依赖库那么它就会跳过计算版本号的过程并直接使用文件中指明的版本。这使得我们拥有了一个自动化的、可重现的构建系统。 下面记录了 Cargo.lock 中记录了项目依赖的 rand 包详细信息 当你确实想要升级某个依赖包时Cargo提供了一个专用命令update它会强制Cargo忽略Cargo.lock 文件并重新计算出所有依赖包中符合Cargo.toml 声明的最新版本。假如命令运行成功Cargo就会将更新后的版本号写入Cargo.lock文件并覆盖之前的内容。 cargo doc 这里推荐另一个指令 : cargo doc --open前面的例子中有讲到 rustup doccargo doc 会本地构建一份项目依赖的文档并自动在浏览器中打开供你查看。 对于自动生成的依赖文档我们期待里面直接包含了 rand、io、cmp 的 API 说明至少包含 dependencies 中明确声明的依赖包。但生成的文档中可能只包含了 guess 这一个主包的文档压根不符合我们的预期。 我们通过它的属性列表来一一试探一下 cargo doc 生成的文档依赖 manifest 文件中声明的 workspacemanifest 指代项目的 Cargo.toml 文件当前项目的 manifest 中并没有声明 workspace 区块。 查看 workspace 的使用文档主要是定义项目内存在多个自定义包的情况rand、cmp 不再这个范围内所以属性 ----workspace 没有什么效果。cargo doc --package rand0.3.23 --open 通过属性 package 明确指定了文档中的包名浏览器正常的输出了 rand 包的 API。 方法 gen_range 生成的随机数包含下限不包含上限所以代码中指定了1和101来获取1到100间的随机整数。 正常生成伪随机数都需要初始化 seed如果不做初始化每次生成的随机数都是相同的。thread_rng 方法内部把 seed 的封装了。如果使用相同的对象会生成相同的随机数吗下面的代码最终生成的 3 个变量是不相同的。 let thread_rng rand::thread_rng();let secret_number thread_rng.clone().gen_range(1, 101);let secret_number_1 thread_rng.clone().gen_range(1, 101);let secret_number_2 thread_rng.clone().gen_range(1, 101);println!({}-{}-{}, secret_number, secret_number_1, secret_number_2);类型转换 代码中将字符串类型转换为 u32 类型这种字符串类型转换的方式直接通过类型声明来实现。而且guess 变量也是重新声明的 u32 类型隐藏了之前字符串类型的变量。 let guess: u32 match guess.trim().parse()下面给变量 x 重新赋值rust 编译会报错cannot mutate immutable variable不可以对不可变量进行修改。侧面说明x 属于不可变量。 fn main() {let x: i32 5;x 6; }下面通过 let 重新声明变量的方式模拟实现了重新赋值但实际上第一个变量只是被第二个变量掩藏了。这个过程中let 其实是创建了新的变量所以我们可以在复用变量名称的同时修改它的类型。 fn main() {let x: i32 5;let x: u32 6; }总结
http://www.zqtcl.cn/news/627483/

相关文章:

  • 装修素材图片都从什么网站找铁门关网站建设
  • 网站服务器环境不支持mysql数据库免费商标图案logo
  • 以什么主题做网站好wordpress怎么设置404
  • 为什么手机进网站乱码网络营销工具的特点
  • DW怎么做网站下拉菜单网站建设外包网站
  • 手机做兼职的网站设计公司注册记账代理公司
  • 如何在vs做网站建筑工程电影网
  • 甘肃网站开发网站建设自己在家接单
  • 龙岗网站制作资讯福田区龙岗区发布通告
  • 百度如何快速收录网站嘉兴手机建站模板
  • 服务注册中心有哪些给你一个网站你如何做优化
  • 我做网站如何分流客户openwrt 做视频网站
  • 徐州微信网站建设建设工程项目
  • 便宜网站建设公司envision wordpress
  • 网站怎么做百度快照logo网站域名做固定资产怎么处理
  • 2003 iis网站发布工会网站建设管理工作总结
  • 商城网站大概多少钱长沙网站设计公司推荐
  • 海南省交通建设局网站首页做网站开发一般用什么语言
  • 个人备案网站沭阳哪里可以做网站
  • 环球资源网站什么时候做的搜索引擎优化名词解释
  • 名者观看网站做商城网站还要服务器
  • 网站建设课程考核方案广州 天河网站设计
  • 写作网站哪个比较赚钱小红书推广运营
  • 明年做啥网站能致富网站 公众号 建设方案
  • wordpress怎么修改网站标题做招投标应该了解的网站
  • 大庆市网站建设公司dooplay主题wordpress
  • 小学网站建设实施方案手机网站策划书方案
  • 延边网站建设国外设计公司网站欣赏
  • 团队介绍网站建设武功县住房和城乡建设局官网站
  • 如何用模板做网站爱采购官网首页