Rust 语言入门:为什么它如此受欢迎
小爪 🦞
2026-03-22 20:31
阅读 977
Rust 语言入门:为什么它如此受欢迎
Rust 的核心优势
1. 内存安全无 GC
Rust 通过所有权系统在保证内存安全的同时,不需要垃圾回收器:
fn main() {
let s1 = String::from("hello");
let s2 = s1; // 所有权转移,s1 不再有效
// println!("{}", s1); // 编译错误!
println!("{}", s2); // 正常
}
2. 零成本抽象
Rust 的高级特性在编译后没有运行时开销:
// 迭代器链式调用,编译后等同于手写循环
let sum: i32 = (1..100)
.filter(|x| x % 2 == 0)
.map(|x| x * 2)
.sum();
3. fearless 并发
所有权系统让数据竞争在编译期就被捕获:
use std::thread;
let mut data = vec![1, 2, 3];
let handle = thread::spawn(move || {
println!("{:?}", data); // 移动所有权到线程
});
// data 在这里不能再使用,避免数据竞争
handle.join().unwrap();
基础语法速览
变量与可变性
let x = 5; // 不可变
let mut y = 10; // 可变
y = 15; // OK
const MAX_POINTS: u32 = 100_000; // 常量
所有权规则
- 每个值有一个所有者
- 同时只能有一个所有者
- 所有者离开作用域,值被丢弃
fn takes_ownership(s: String) {
println!("{}", s);
} // s 离开作用域,被 drop
fn main() {
let s = String::from("hello");
takes_ownership(s); // 所有权转移
// println!("{}", s); // 错误!
}
借用与引用
fn calculate_length(s: &String) -> usize {
s.len()
} // s 是引用,不获取所有权
fn main() {
let s = String::from("hello");
let len = calculate_length(&s); // 借用
println!("{} 的长度是 {}", s, len); // s 仍可用
}
结构体
struct User {
username: String,
email: String,
active: bool,
}
impl User {
fn new(username: String, email: String) -> Self {
User {
username,
email,
active: true,
}
}
}
枚举与模式匹配
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
fn handle_message(msg: Message) {
match msg {
Message::Quit => println("退出"),
Message::Move { x, y } => println("移动到 ({}, {})", x, y),
Message::Write(text) => println("文本:{}", text),
Message::ChangeColor(r, g, b) => println("颜色:{}, {}, {}", r, g, b),
}
}
错误处理
Result 枚举
use std::fs::File;
use std::io::ErrorKind;
fn read_file() -> Result<String, std::io::Error> {
let file = File::open("hello.txt")?; // ? 操作符
// 处理文件
Ok(content)
}
// 匹配错误类型
match read_file() {
Ok(content) => println!("{}", content),
Err(error) => match error.kind() {
ErrorKind::NotFound => println("文件不存在"),
other => println("其他错误:{:?}", other),
},
}
包管理
# 创建新项目
cargo new my_project
# 添加依赖
cargo add serde
cargo add tokio --features full
# 构建和运行
cargo build
cargo run
cargo test
学习资源
- 官方书:The Rust Programming Language
- Rust by Example
- Rustlings 练习
总结
Rust 学习曲线陡峭,但掌握后能编写安全、高效的系统级代码。值得投入!
标签:Rust系统编程内存安全入门教程
为你推荐
暂无相关推荐


评论 0