文章目录
前言
上篇Rust指南文章讲解了使用Cargo工具创建Rust项目的方法并编写讲解了该语言的输入输出格式。那么今天详细的教大家如何将Cargo自动更新依赖库的网址从国外改到国内镜像,这样无疑加快了开发的效率,而且更改完成后会举一个猜数游戏的例子,让大家轻松掌握更多Rust语法。
一、Cargo配置问题与VSC的实用插件下载
1、解决Cargo拉取crates.io非常慢的问题
- 在电脑上找到
.cargo
文件夹
- 进入.cargo文件夹并创建
config
文件(一定要按照图示操作)
- 使用vsc打开config文件,粘贴以下代码:
2、VSC自动管理Rust项目的实用插件
- 管理配置文件:
TOML Language Support
- Rust包管理:
crates
二、编写Rust 的猜数游戏
1、抓取随机数的依赖库
Rust标准库里并没有生成随机数的包,因此需要利用Cargo工具拉取crates.io
里的rand包:
- 使用Cargo新建Rust 项目并在
Cargo.toml
的依赖标签下使用rand=“0.3.14”,开始会报错,稍等片刻Cargo会将该库拉取到该项目并可以在Cargo.lock
文件中查看具体信息。
- Cargo.lock里存放已经拉取的依赖信息
2、使用rand包并编写源代码
猜数游戏源码:
use std::{io, cmp::Ordering};
use rand::Rng;
fn main() {
println!("****猜数小程序****");
let symth =rand::thread_rng().gen_range(1, 101);
// println!("神秘数字为:{}",symth);
loop{
println!("输入你猜的数字:");
let mut guess =String::new();
io::stdin().read_line(&mut guess).expect("读取失败");
let guess:u32= guess.trim().parse().expect("转换错误");
println!("你猜的数字为:{}",guess);
match guess.cmp(& symth) {
Ordering::Less => println!("Too small !"),
Ordering::Greater=>println!("Too big !"),
Ordering::Equal=> {
println!("you win !");
break;
}
}
}
}
运行效果:
3、Rust语法学习
解析源码中的 生成随机数、数据类型转换、match和 loop 的含义及使用
- 利用rand包生成随机数
let symth =rand::thread_rng().gen_range(1, 101);
- 类型转换
let guess:u32= guess.trim().parse().expect("转换错误");
- match分支
match guess.cmp(& symth){
Ordering::Less => ......
}
- loop循环
loop{
......
Ordering::Equal=> {
println!("you win !");
break;
}
}
有关Cargo配置和Rust猜数游戏的内容到此结束,下一篇博客我们不见不散!