Rust学习(一):猜数字游戏

chalmery Lv2

一 Rust安装

Rust安装极为简单,先下载rustup

image-20220314220250790

之后使用命令下载:

1
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

在vscode下载插件 rust-analyzer即可快速开发

image-20220314220452099

二 cargo

cargo就是rust的包管理工具,与npm,maven等是一样的,一般rustup来安装rust会自带cargo,常见命令如下

1
2
3
4
5
6
7
8
# 创建一个catgo项目
cargo new 项目
# 编译和执行结果,可以用来检验是否编写错误
cargo run
# 发布的构建,编译会优化,代码更快,但是编译时间更长
cargo build --release
# 普通的构建
cargo build

三 猜数字游戏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use rand::Rng;
use std::cmp::Ordering; //Ordering是一个枚举类型
use std::io; //Rng是一个trait 可以认为是接口
//rust默认会倒入prelude这个模块
fn main() {
println!("猜一个数字");
//i32 u32 i64 都是整形
let number = rand::thread_rng().gen_range(1..101);
// loop表示无限循环
loop {
let mut guess = String::new();
// io函数读取输 使用expect方法,表示如果result是err则执行
io::stdin().read_line(&mut guess).expect("无法读取行");

//将字符串转为整形 parse方法返回中为Result
// 隐藏shadow 隐藏重名的旧变量,从18行开始,变量guess类型就变了
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
//_:此通配符表示不关心这个值
Err(_) => continue,
};

println!("你猜测的数是:{}", guess);

//match表达式:可以让我们根据 枚举值选择不同的操作,就相当于if else
//cmp就是compere,比较的意思
match guess.cmp(&number) {
//三个枚举分别表示小大等
Ordering::Less => println!("Too Small!"),
Ordering::Greater => println!("Too Big!"),
Ordering::Equal => {
println!("You Win!");
break;
}
}
}
}

参考:

  • 标题: Rust学习(一):猜数字游戏
  • 作者: chalmery
  • 创建于 : 2022-03-14 00:00:00
  • 更新于 : 2022-03-14 00:00:00
  • 链接: https://github.com/chalmery/2690763544/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
Rust学习(一):猜数字游戏