程序1
hello-world
fn main() {
println!("Hello, world!");
}
猜数版本1
获取用户输入
use std::io;
fn main() {
println!("Guess the number!");
println!("Please input your guess.");
let mut guess = String::new();
// 获取用户输入
io::stdin()
.read_line(&mut guess)
.expect("Failed to read line");
println!("You guessed: {}", guess);
}
猜数版本2
生成随机数
use std::io;
use rand::Rng; // 使用rand包的Rng接口定义
fn main() {
println!("Guess the number!");
let secret_number = rand::thread_rng().gen_range(1..101); // 生成
println!("The secret number is: {}", secret_number);
println!("Please input your guess.");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("Failed to read line");
println!("You guessed: {}", guess);
}
猜数版本3
处理比较输入
use rand::Rng;
use std::cmp::Ordering; // 要用到标准包里面的比较接口
use std::io;
fn main() {
println!("猜数!");
let secret_number = rand::thread_rng().gen_range(1..101);
// println!("神秘数字是: {}", secret_number.to_string());
println!("请输入你猜测的数字:");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("读取数据失败");
println!("你猜测的数是: {}", guess);
// 针对字符串进行比较
match guess.cmp(&secret_number.to_string()){
Ordering::Less => println!("太小了!"),
Ordering::Greater => println!("太大了!"),
Ordering::Equal => println!("你赢了!"),
}
}
猜数版本4
转换输入为数字
use rand::Rng;
use std::cmp::Ordering; // 要用到标准包里面的比较接口
use std::io;
fn main() {
println!("猜数!");
let secret_number = rand::thread_rng().gen_range(1..101);
// println!("神秘数字是: {}", secret_number.to_string());
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(&secret_number){
Ordering::Less => println!("太小了"),
Ordering::Greater => println!("太大了"),
Ordering::Equal => {
println!("你赢了");
break;
}
}
}
}
猜数版本5
处理程序崩溃情况
use rand::Rng;
use std::cmp::Ordering; // 要用到标准包里面的比较接口
use std::io;
fn main() {
println!("猜数!");
let secret_number = rand::thread_rng().gen_range(1..101);
// println!("神秘数字是: {}", secret_number.to_string());
loop {
println!("请输入你猜测的数字:");
let mut guess = String::new();
io::stdin().read_line(& mut guess).expect("不能读取行!");
// 是一个Result,有 OK 和 Err 两种情况
let guess: u32 = match guess.trim().parse() {
Ok(num) => num, // 可以转化为数字
Err(_) => continue, // 进入下一次循环
};
println!("你输入的是: {}", guess);
match guess.cmp(&secret_number){
Ordering::Less => println!("你输入的是: {} 太小了", guess),
Ordering::Greater => println!("你输入的是: {} 太大了", guess),
Ordering::Equal => {
println!("你输入的是: {} 你赢了", guess);
break; // 退出循环
}
}
}
}