开发环境
- Windows 10
- Rust 1.49
- VS Code
项目工程
这里继续沿用上次工程rust-demo。
目标
本次项目在上次猜随机数字的基础上,将猜到的数据进行匹配计算。本次项目中使用依赖如下:
[dependencies]
rand = "0.6.0"
Carog.toml文件内容如下:
编码
本次项目全部代码如下:
use std::io; // 引入IO库
use std::cmp::Ordering; // 引入排序比较库
use rand::Rng; // 引入Rand库
fn main() {
println!("Guess the number!");
let secret_number = rand::thread_rng().gen_range(1, 101); // 生成1 ~ 100之间的随机数
println!("The secret number is: {}", secret_number);
println!("Please input your guess.");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess) // 读取输入的内容,并将其赋值给guess
.expect("Failed to read line");
let guess: u32 = guess.trim().parse().expect("Please type a number!"); // 将guess字符串转成u32整型
println!("You guessed: {}", guess);
match guess.cmp(&secret_number) { // 将猜到的数据和随机数比较
Ordering::Less => println!("Too small!"),
Ordering::Greater => println!("Too big!"),
Ordering::Equal => println!("You win!"),
}
}
运行
使用下述命令运行。
cargo run
如果没有编译错误,测试结果如下,
如果猜小了:
如果猜大了:
如果刚好猜中:
重点
- 比较库std::cmp::Ordering
- 字符串转整型guess.trim().parse()