- front page
- Blog List
- Detailed article
Rust 语言入门与实践指南
量
量子喵呜
Daily Planning
Time Tracking
Itinerary
2025-09-17

112Rust 语言入门与实践指南
Rust 是一门专注于安全性和性能的系统编程语言。它解决了传统系统语言如 C/C++ 中的内存安全问题,同时保持了高性能。学习 Rust 需要理解其独特的所有权系统,这是它保证内存安全的核心机制。
Rust 开发环境搭建
安装 Rust 最简单的方法是使用 rustup 工具。在终端运行以下命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后,验证安装:
rustc --version
cargo --version
推荐使用 VS Code 作为开发环境,安装 rust-analyzer 插件可以获得更好的开发体验。
Rust 基础语法
Rust 变量默认是不可变的:
let x = 5; // 不可变
let mut y = 10; // 可变
基本数据类型包括:
- 整数:i8, i16, i32, i64, i128, isize
- 无符号整数:u8, u16, u32, u64, u128, usize
- 浮点数:f32, f64
- 布尔值:bool
- 字符:char
函数定义示例:
fn add(a: i32, b: i32) -> i32 {
a + b
}
所有权机制
所有权是 Rust 最独特的概念。每个值都有一个所有者,当所有者离开作用域时,值会被自动释放。
let s1 = String::from("hello");
let s2 = s1; // s1 的所有权转移给 s2
// println!("{}", s1); // 错误!s1 不再有效
借用允许你引用值而不获取所有权:
fn calculate_length(s: &String) -> usize {
s.len()
}
let s = String::from("hello");
let len = calculate_length(&s);
并发编程
Rust 的并发模型基于所有权系统,可以在编译时防止数据竞争:
use std::thread;
let v = vec![1, 2, 3];
let handle = thread::spawn(move || {
println!("Here's a vector: {:?}", v);
});
handle.join().unwrap();
标准库使用
Rust 标准库提供了丰富的功能:
use std::collections::HashMap;
let mut scores = HashMap::new();
scores.insert("Blue", 10);
scores.insert("Yellow", 50);
错误处理使用 Result 和 Option 类型:
use std::fs::File;
let f = File::open("hello.txt");
let f = match f {
Ok(file) => file,
Err(error) => panic!("Problem opening the file: {:?}", error),
};
项目实战:构建命令行工具
使用 clap 库创建命令行工具:
[dependencies]
clap = { version = "3.0", features = ["derive"] }
use clap::Parser;
#[derive(Parser)]
struct Cli {
pattern: String,
path: std::path::PathBuf,
}
fn main() {
let args = Cli::parse();
let content = std::fs::read_to_string(&args.path).expect("could not read file");
for line in content.lines() {
if line.contains(&args.pattern) {
println!("{}", line);
}
}
}
进阶学习
要深入学习 Rust,可以探索:
- 异步编程 (async/await)
- 宏系统
- 不安全 Rust
- 嵌入式开发
推荐资源:
- Rust 官方文档 (https://doc.rust-lang.org/book/)
- Rust by Example (https://doc.rust-lang.org/stable/rust-by-example/)
- Rust 社区论坛 (https://users.rust-lang.org/)



