rust
- rust是一门相对比较新系统级编程语言
- 无论是底层还是应用都可以一把梭(有纯rust的操作系统和浏览器servo,也有基于rust的ui框架Tauri)
- 现在很多项目正在被rust重构
- 我计划构建一套纯纯的中文编程生态,rust是最合适的选择
学习资料
- [官网](https://rust-lang.org/zh-CN/)
安装运行
- 无论是在window还是linux安装rust都是需要c++编译工具的
- 在wsl(window下的linux) 现在window应用商店安装 乌班图 我装的 是 22版的 然后打开控制台 选择进入linux环境 会让你创建个账户
- 在linux下安装rust: sudo apt install build-essential (这是在安装c++编译工具) 然后执行 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh (ai代码提示生成的,不知道对不对,可以去官网看下)
- 选择1 默认安装即可 安装完成后重新打开终端(安装过程中配了环境变量) 输入 rustc --version 如果显示版本号就说明安装成功了
- 新建一个目录 rust_learn (mkdir rust_learn) 进入该目录 (cd rust_learn) 执行 cargo new hello (这回创建一个项目)
- 进入项目目录 (cd hello) 执行 cargo run 就可以运行了
- 在vscode安装远程连接插件,然后打开远程连接,选择wsl,然后选择wsl的路径,就可以在vscode中写代码了
- 在vscode中安装rust-analyzer插件
编写一个猜数字游戏
- 这个练习主要是对rust有一个简单的了解,有不清楚的地方后面会学到
创建项目
- 在rust_learn目录下执行 cargo new guessing_game
- 进入项目目录 (cd guessing_game)
- 执行 cargo run
代码解析
- main.rs 是入口文件
- Cargo.toml 是配置文件 (类似 node的 package.json)
- src/main.rs 是源代码文件

use rand::Rng; // 导入rand库中的Rng trait,用于生成随机数
use std::io; // 导入标准库中的io模块,用于处理输入输出
fn main() {
//生成一个1-100之间的随机数,不包括guess
let mut rng = rand::rng(); // 创建一个随机数生成器实例
let secret_number: u32 = rng.random_range(1..=100); // 生成一个1到100之间的随机数作为秘密数字
println!("{}", secret_number); // 打印生成的秘密数字
loop { // 开始一个无限循环
let guess = read_number(); // 读取用户输入的猜测数字
if secret_number == guess { // 比较猜测数字和秘密数字
println!("你猜对了!"); // 如果猜对了,打印提示信息并退出循环
break;
} else if secret_number < guess {
println!("你猜的数字太大了"); // 如果猜的数字太大,打印提示信息
} else {
println!("你猜的数字太小了"); // 如果猜的数字太小,打印提示信息
}
}
}
fn read_number() -> u32 {
println!("输入你的猜测:"); // 提示用户输入猜测数字
let mut guess = String::new(); // 创建一个可变的字符串变量来存储用户输入
io::stdin().read_line(&mut guess).expect("读取失败"); // 从标准输入读取一行数据,并处理可能的读取错误
let guess: u32 = guess.trim().parse().expect("输入的不是数字"); // 将输入的字符串转换为32位无符号整数,处理可能的转换错误
return guess; // 返回转换后的数字
}