全栈程序员的新玩具Rust(三)板条箱

上次用到了stdout,这次我们来写一个更复杂一点的游戏

rust的标准库叫做std,默认就会引入。

这次我们要用到一个随机数函数,而随机数比较尴尬的一点是这玩意不在标准库中,我们要额外依赖一个库。

很多编程方案都有自己的模块化库系统,rust也不例外,不过rust 把库叫做crate,就是图中这种箱子的意思,倒也形象。

rust提供了一个官方网站 crates.io用来管理库,你也可以把你的库提交上去

我们这次就要使用这个rand库

安装依赖库

因为查询到当前rand库的版本已经到了 0.7.2

那我们定义一个 0.7.0 的依赖好了。

编辑cargo.toml文件,加上依赖就好了

写入0.7.0,实际上会自己查找最新的 0.7.x 版本的rand

安装依赖库只需要编辑 cargo.toml文件即可,然后build 时 rust就会自己去下载库

然后 rust 最有趣的部分来了

查看文档

只需要在命令行输入 cargo doc –open

rust就会自动为你生成一份本地代码文档,当然也包括依赖库的

通过本地文档,我们大概知道了rand怎么用

然后写代码,用这个库,和文档有点出入哈,不过还是顺利的输出了一个随机数字

猜数字

猜数字游戏就是让玩家不停的输入数字,只告诉他你猜大了,猜小了,直到玩家猜对

我们知道怎么输出,能产生随机数,还差输入

由于vscode 集成的console 不接受输入,我们要调试输入,第一件事是打开外部控制台

写个死循环,不停的stdin().read_line

完成的版本在这里

https://gitee.com/lightsever/rust_study/blob/master/hello02/src/main.rs

出现的新代码就只有这部分

u32::from_str是 从string 转为 u32的方法

但是他返回的类型是result

这里我们用rust的特色语法match 来处理他

之前的.expect(“”)可以快速的处理这种情况。

这里也是为了解Rust的错误处理机制,试验了各种写法

因为我们要用这个返回值做分支处理,之前的.expect(“”)方法就不够用了。

原文地址:https://www.cnblogs.com/crazylights/p/12115709.html

时间: 2024-08-29 11:28:39

全栈程序员的新玩具Rust(三)板条箱的相关文章

全栈程序员的新玩具Rust(一) IDE环境

最基本的helloword过程 我们之前提过 第一步.安装rust工具链 https://www.rust-lang.org/tools/install 第二步.创建项目 cargo new helloworld 会得到一个控制台程序模板,源码如下 fn main() {     println!("Hello, world!");} 第三步.运行项目 cd helloworld cargo run 或者直接去执行exe(仅限windows) 注:rust在window下编译需要vs的

全栈程序员的新玩具Rust(六)第一个WASM程序

先上代码 https://gitee.com/lightsever/rust_study/tree/master/wasm_hello01 webassembly就不用再赘述了,耳朵里面快磨出茧子来了. rustwasm是火狐自家的玩具,让我们来继续做实验,让rust飞起来吧. 环境安装 安装好rust环境之后仍然需要 一个 wasm 工具包 cargo install wasm-pack 然后如果想快速创建一个wasm项目模板可以用这个 cargo generate --git https:/

全栈程序员的新玩具Rust(二)基本代码入门

先来看这个简单的程序 1.奇怪的关键字 fn=function 函数 mut=mutability 变异性,反义词是immutability 不变性. 2.变量定义 这和其它语言不太一样,普通的语言里变量默认为可变,如果不可变则要标注为readonly 有些语言压根没有不可变这个设计,所有变量都可变. rust中,let定义的变量为immutability ,不可变,类似于其它语言中的readonly 所以图中的x 为 只读变量,不可变 图中y可以赋值 并且rust 允许覆盖定义,图中x定义了两

快乐死我了,怎么样成为一个全栈程序员(Full Stack Developer) good

受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天赋,所以只做好软件全栈的话我想还是可能的禅师:你玩过三国志这个游戏吗码农:我还开发过禅师:你喜欢什么样的武将,诸葛亮怎么样?码农:不错,虽然他武力只有20,不过智力有100,不过游戏出战不是单打独斗,我可以给他搭配武力100,智力20的吕布,在战场上所向披靡禅师:对于一个武力65,智力65的武将,你

[转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言

受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天赋,所以只做好软件全栈的话我想还是可能的禅师:你玩过三国志这个游戏吗码农:我还开发过禅师:你喜欢什么样的武将,诸葛亮怎么样?码农:不错,虽然他武力只有20,不过智力有100,不过游戏出战不是单打独斗,我可以给他搭配武力100,智力20的吕布,在战场上所向披靡禅师:对于一个武力65,智力65的武将,你

Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试

在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 首先我们确定下我们安装的Ubuntu系统是否已经安装了java环境. 进入终端,敲入命令su,进入root模式(当然也可以省掉这一步),敲入命令java -version.如果看到这个界面,说明尚未安装Java环境, Ps:我们的课程中曾经讲过如何删除一个老的jdk,这里就略过不讲了. 继而,让我

High Performance Python 笔记(Python是门不错的语言,全栈程序员就用它好了!)

High Performance Python 目录 1Understanding Performant Python 2Profiling 3Lists and Tuples 4Dictionaries and Sets 5Iterators and Generators 6Matrix and Vector Computation 7Compiling to C 8Concurrency 9multiprocessing 10Clusters and Job Queues 11Using L

Java全栈程序员之09:IDEA+GitHub

GitHub是源码托管站点,其依赖于Git这个源码管理工具来进行代码的托管.所以将我们的代码托管到GitHub之前,我们需要安装Git. 1.Git安装 可以通过输入git命令来确定是否在本机已经安装了Git,如下. 如果发现没有安装,在Ubuntu上可以通过命令:sudo apt-get install git来进行安装,如下: 安装成功,再打开idea,就能看到project的右键菜单中多了git这个菜单项. 2.代码添加到本地git仓库 创建本地仓库需要在菜单vcs下选择import in

本人工作性质已改变,不再从事全职程序员,回归登山行摄领队

本人工作性质已改变,不再从事全职程序员,回归登山行摄领队. 喜马拉雅行摄:http://www.himalaya-cross.com 个人网站:http://www.liangyichen.com