Rust学习笔记
决定还是学习后端语言,选中了rust,听说它很难。嗯,我就喜欢挑战一下!
官网第一课
当然不是hello world,这个太简单了。从猜数字游戏开始! 先跟着官方入门课程看了一遍,然后凭记忆复写一遍。
use rand::Rng;
use std::cmp::Ordering;
use std::io;
use std::thread;
use std::time::Duration;
fn main() {
println!("猜数字游戏!");
let secret_number = rand::rng().random_range(1..=100); // 修正方法名
let mut guess = String::new();
loop {
println!("请输入你的猜测:(1-100)");
guess.clear();
io::stdin().read_line(&mut guess).expect("读取失败"); // 移除赋值语句
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => {
println!("请输入一个有效的数字!(1-100)");
continue
}
};
match guess.cmp(&secret_number) {
Ordering::Less => println!("太小了!"),
Ordering::Greater => println!("太大了!"),
Ordering::Equal => {
println!("恭喜你,猜对了!");
thread::sleep(Duration::from_secs(3)); // 延迟3秒
println!("游戏结束,程序2秒后退出");
thread::sleep(Duration::from_secs(2)); // 延迟2秒
break;
}
}
}
}
好吧,我承认我调试了n久还是通不过编译器,然后我让ai帮我检查了一遍。
guess = io::stdin().read_line(&mut guess).expect("读取失败"); // 写错语句位置
io::stdin().read_line(&mut guess).expect("读取失败"); // 我理解错了,这里标准库文件里已经有赋值了,所以我死活通不过
当然,也不得不感叹现在rust-analyzer的功能真的是强大,我刚打个首字母它就知道我后面要写啥。。。其实我好多库函数名都不知道,都是它帮我敲的。。。感觉学习的时候是不是得关掉这个插件试试纯手写。。。
总结
官方教程讲的很细,不过有些内容还是得自己跟着敲一遍才能理解。还有些标准库函数更新,编译错误分析也得自己去查。总之不动手这些东西是学不出来的。今天的学习笔记就到这里了,明天继续!
感谢阅读 !