🦀 Rust
AI 摘要:Rust 是由 Mozilla 研究院于 2010 年推出的系统级编程语言,专注于内存安全、并发性和性能。通过所有权(Ownership)系统在编译期保证内存安全,无需垃圾回收器,适合系统编程、WebAssembly、嵌入式开发等场景。
概述
Rust 属于 系统 & 高性能语言 分类。Rust 连续多年被评为"最受喜爱的编程语言",以其零成本抽象和内存安全保证而闻名。
语言特点
Rust 作为一种现代系统编程语言,具有以下核心特点:
- 内存安全:通过所有权(Ownership)、借用(Borrowing)和生命周期(Lifetime)系统,在编译期消除内存错误
- 零成本抽象:高级语言特性不会带来运行时开销,"你不需要为你没有使用的东西付费"
- 无数据竞争的并发:类型系统和所有权规则保证线程安全,编译期拒绝数据竞争
- 无 GC:没有垃圾回收器,内存管理可预测,适合实时和嵌入式场景
- 强大的类型系统:代数数据类型(ADT)、模式匹配、Trait 系统
- 优秀的工具链:Cargo 包管理器、rustfmt 格式化、clippy 代码检查
Hello World
rust
fn main() {
println!("Hello, World!");
}基础语法
变量与数据类型
Rust 是静态类型语言,支持类型推断:
rust
let age: i32 = 25;
let name = "Rust"; // 类型推断为 &str
let price = 99.99; // 类型推断为 f64
let is_active = true;
let mut count = 0; // mut 关键字声明可变变量
// 常量
const MAX_SIZE: usize = 100;所有权系统
Rust 最核心的特性,三条基本规则:
- 每个值都有一个所有者(owner)
- 同一时刻只能有一个所有者
- 当所有者离开作用域,值被丢弃(drop)
rust
let s1 = String::from("hello");
let s2 = s1; // 所有权转移,s1 不再有效
// println!("{}", s1); // 编译错误!
println!("{}", s2); // 正常工作
// 借用(引用)
fn calculate_length(s: &String) -> usize { // 借用,不获取所有权
s.len()
}控制流
rust
// if-else (是表达式)
let result = if age >= 18 {
"成年人"
} else {
"未成年人"
};
// for 循环
for i in 0..10 {
println!("{}", i);
}
// loop (无限循环)
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // 返回值
}
};
// while 循环
while counter > 0 {
counter -= 1;
}
// match 模式匹配
match value {
1 => println!("一"),
2..=5 => println!("二到五"),
_ => println!("其他"),
}函数与闭包
rust
// 函数定义
fn add(a: i32, b: i32) -> i32 {
a + b // 最后一行为返回值
}
// 多返回值(元组)
fn swap(a: i32, b: i32) -> (i32, i32) {
(b, a)
}
// 闭包
let sum = |x, y| x + y;
let greet = |name: &str| format!("Hello, {}!", name);枚举与模式匹配
rust
enum Result<T, E> {
Ok(T),
Err(E),
}
// Option 处理空值
fn find_user(id: i32) -> Option<String> {
if id > 0 {
Some(format!("User {}", id))
} else {
None
}
}
// 使用 match 处理
match find_user(1) {
Some(name) => println!("Found: {}", name),
None => println!("Not found"),
}
// 使用 if let 简化
if let Some(name) = find_user(1) {
println!("Found: {}", name);
}应用领域
- 系统编程:操作系统组件和驱动开发
- WebAssembly:高性能浏览器应用
- 网络服务:Tokio 异步 Web 服务
- 嵌入式开发:嵌入式和 IoT 设备
- 区块链:Solana、Polkadot 等区块链项目
- 命令行工具:ripgrep、fd、bat 等高性能 CLI 工具
- 游戏引擎:Bevy 游戏引擎
开发环境搭建
- 安装 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - 验证安装:
rustc --version和cargo --version - 创建项目:
cargo new my_project - 构建运行:
cargo run - 选择 IDE:VS Code + rust-analyzer(推荐)、RustRover
学习路线
- 入门阶段:所有权系统 → 借用检查 → 生命周期 → 结构体和枚举
- 进阶阶段:Trait 系统 → 错误处理(Result/Option)→ 智能指针 → 泛型
- 实战阶段:异步编程(async/await)→ Web 服务(Axum/Actix)→ 系统编程
- 高级阶段:Unsafe Rust → 宏系统 → 嵌入式开发 → 编译器插件
参考资源
- The Rust Programming Language - Rust 官方教程
- Rust by Example - 示例驱动学习
- Rustlings - 交互式练习
- Rust 标准库文档 - API 参考