码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-12-29 18:32:36      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:有趣的   复杂   提交   open   pen   额外   href   vsc   sar   

技术图片

上次用到了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(“”)方法就不够用了。

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

标签:有趣的   复杂   提交   open   pen   额外   href   vsc   sar   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!