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的功能真的是强大,我刚打个首字母它就知道我后面要写啥。。。其实我好多库函数名都不知道,都是它帮我敲的。。。感觉学习的时候是不是得关掉这个插件试试纯手写。。。
总结
官方教程讲的很细,不过有些内容还是得自己跟着敲一遍才能理解。还有些标准库函数更新,编译错误分析也得自己去查。总之不动手这些东西是学不出来的。今天的学习笔记就到这里了,明天继续!
感谢阅读 !
