分享好友 编程语言首页 频道列表

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

rust文章/教程  2023-02-10 10:430

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

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

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

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

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

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

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

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

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

因为查询到当前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就会自动为你生成一份本地代码文档,当然也包括依赖库的

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

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

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

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

猜数字

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

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

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

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

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

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

 

完成的版本在这里

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

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

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

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

但是他返回的类型是result

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

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

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

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

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

查看更多关于【rust文章/教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
Rust到底值不值得学--Rust对比、特色和理念
前言其实我一直弄不明白一点,那就是计算机技术的发展,是让这个世界变得简单了,还是变得更复杂了。当然这只是一个玩笑,可别把这个问题当真。然而对于IT从业者来说,这可不是一个玩笑。几乎每一次的技术发展,都让这个生态变得更为复杂。“英年早秃”已经成

0评论2023-03-08818

【Rust】标准库-Result rust数据库
环境Rust 1.56.1VSCode 1.61.2概念参考:https://doc.rust-lang.org/stable/rust-by-example/std/result.html示例main.rsmod checked {#[derive(Debug)]pub enum MathError {DivisionByZero,NonPositiveLogarithm,NegativeSquareRoot,}pub type MathResult =

0评论2023-02-09978

【Rust】标准库-引用 rust 数据库框架
环境Rust 1.56.1VSCode 1.61.2概念参考:https://doc.rust-lang.org/stable/rust-by-example/std/rc.html示例rust 使用 Rc 来实现引用计数。main.rsuse std::rc::Rc;fn main() {let rc_examples = "Rc examples".to_string();{println!("--- rc_a is created

0评论2023-02-09638

rust 打印当前时间
let now = time::now();let f_now = time::strftime("%Y-%m-%dT%H:%M:%S", now).unwrap();println!("now: {:?}", f_now);

0评论2023-02-09689

【Rust】线程 rust编程语言
环境Rust 1.56.1VSCode 1.61.2概念参考:https://doc.rust-lang.org/stable/rust-by-example/std_misc/threads.html示例main.rsuse std::thread;const N_THREADS: u32 = 10;fn main() {let mut children = vec![];for i in 0..N_THREADS {children.push(threa

0评论2023-02-09956

rust安装 rust安装在固态进不去游戏
http://blog.csdn.net/teamlet/article/details/50838996

0评论2023-02-09614

更多推荐