全栈程序员的新玩具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(“”)方法就不够用了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2018-12-29 如何给小学生讲清楚ECC椭圆曲线加密
2011-12-29 记录下想法