Rust简介与环境搭建¶
📚 章节概述¶
本章将介绍 Rust 编程语言的历史背景、核心特点,并指导您完成 Rust 开发环境的搭建。您将学习如何安装 Rust 工具链、使用 Cargo 包管理器,并创建第一个 Rust 项目。
🎯 学习目标¶
- 了解 Rust 的历史和发展
- 掌握 Rust 的核心特点和优势
- 完成 Rust 开发环境的安装和配置
- 学会使用 Cargo 创建和管理项目
- 编写并运行第一个 Rust 程序
📖 Rust 简介¶
1.1 Rust 的历史¶
Rust 是一门系统编程语言,由 Mozilla 研究院的 Graydon Hoare 于 2006 年开始设计。
重要时间节点: - 2006年:Graydon Hoare 开始开发 Rust - 2010年:Mozilla 赞助该项目 - 2015年:Rust 1.0 正式发布 - 2021年:Rust 基金会成立,项目独立于 Mozilla - 至今:每6周发布一个新版本,持续快速发展
设计理念: Rust 的设计目标是创建一门既安全又高效的系统编程语言,能够解决 C/C++ 在内存安全方面的问题,同时保持高性能。
1.2 Rust 的核心特点¶
1. 内存安全¶
// Rust 在编译时就能发现内存错误
fn main() {
let mut v = vec![1, 2, 3];
let first = &v[0]; // 不可变引用
v.push(4); // 编译错误!不能在存在不可变引用时修改
println!("{}", first);
}
内存安全保证: - 无空指针解引用 - 无数据竞争 - 无悬垂指针 - 无缓冲区溢出
2. 高性能¶
Rust 的性能可以媲美 C++,同时提供更高的安全性:
// 零成本抽象示例
fn process_data(data: &[i32]) -> i32 {
data.iter()
.filter(|&&x| x > 0)
.map(|&x| x * 2)
.sum()
}
// 编译器会优化成与手写循环相同的机器码
3. 并发安全¶
Rust 的类型系统在编译时防止数据竞争:
use std::thread;
use std::sync::Arc;
use std::sync::Mutex;
fn main() {
let counter = Arc::new(Mutex::new(0));
let mut handles = vec![];
for _ in 0..10 {
let counter = Arc::clone(&counter);
let handle = thread::spawn(move || {
let mut num = counter.lock().unwrap();
*num += 1;
});
handles.push(handle);
}
for handle in handles {
handle.join().unwrap();
}
println!("Result: {}", *counter.lock().unwrap());
}
4. 现代工具链¶
Rust 提供了优秀的开发者工具:
- Cargo:包管理和构建工具
- rustfmt:代码格式化工具
- clippy:代码检查工具
- rustdoc:文档生成工具
5. 强大的类型系统¶
// 泛型和 trait 系统
trait Summary { // trait 定义共享行为(类似接口)
fn summarize(&self) -> String;
}
struct Article {
title: String,
content: String,
}
impl Summary for Article {
fn summarize(&self) -> String {
format!("{}: {}", self.title, self.content)
}
}
fn notify(item: &impl Summary) {
println!("Breaking news! {}", item.summarize());
}
1.3 Rust 的应用领域¶
1. 系统编程¶
- 操作系统内核
- 设备驱动
- 嵌入式系统
2. Web 开发¶
- Web 服务器
- WebAssembly 应用
- API 服务
3. 区块链¶
- 智能合约(如 Solana)
- 区块链客户端
- 加密货币钱包
4. 游戏开发¶
- 游戏引擎
- 游戏客户端
- 服务器端
5. 云计算¶
- 容器运行时
- 服务网格
- 云原生应用
🛠️ 环境搭建¶
2.1 安装 Rust¶
Windows 系统¶
方法一:使用 rustup(推荐)
- 访问 https://rustup.rs/
- 下载
rustup-init.exe - 运行安装程序,按提示操作
方法二:使用 Chocolatey
macOS 系统¶
# 使用 rustup 安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 或使用 Homebrew
brew install rust
Linux 系统¶
# 使用 rustup 安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Ubuntu/Debian 也可以使用 apt
sudo apt update
sudo apt install rustc cargo
2.2 验证安装¶
安装完成后,打开终端验证安装:
预期输出示例:
2.3 配置开发环境¶
VS Code 配置¶
- 安装 VS Code
- 安装 rust-analyzer 扩展
- 安装 CodeLLDB 扩展(用于调试)
推荐扩展: - rust-analyzer:Rust 语言服务器 - CodeLLDB:调试器 - Even Better TOML:TOML 文件支持 - Error Lens:显示错误信息
其他 IDE¶
IntelliJ IDEA: 1. 安装 IntelliJ IDEA 2. 安装 Rust 插件 3. 配置 Rust SDK
Sublime Text: 1. 安装 Sublime Text 2. 安装 Rust Enhanced 包 3. 配置构建系统
📦 Cargo 工具¶
3.1 Cargo 简介¶
Cargo 是 Rust 的包管理器和构建工具,提供以下功能:
- 创建新项目
- 构建项目
- 运行测试
- 管理依赖
- 发布包
3.2 创建新项目¶
项目结构:
3.3 Cargo.toml 配置¶
[package]
name = "my_project"
version = "0.1.0"
edition = "2024"
authors = ["Your Name <you@example.com>"]
[dependencies]
# 添加依赖
serde = "1.0"
rand = "0.8"
[dev-dependencies]
# 开发依赖
criterion = "0.4"
[profile.release]
# 发布配置
opt-level = 3
lto = true
3.4 常用 Cargo 命令¶
# 构建项目
cargo build
# 构建并运行
cargo run
# 运行测试
cargo test
# 检查代码(不构建)
cargo check
# 生成文档
cargo doc --open
# 格式化代码
cargo fmt
# 代码检查
cargo clippy
# 发布构建
cargo build --release
# 清理构建文件
cargo clean
# 更新依赖
cargo update
💻 第一个 Rust 程序¶
4.1 Hello World¶
创建并运行第一个程序:
编辑 src/main.rs:
运行程序:
输出:
4.2 程序解析¶
代码解析: - fn main():定义主函数,程序入口 - println!:宏,打印文本到控制台 - !:表示这是一个宏调用 - ;:语句结束符
4.3 变量和打印¶
fn main() {
let name = "Rust";
let version = 1.75;
println!("Hello, {}!", name);
println!("Version: {}", version);
println!("Formatted: {} version {}", name, version);
}
🔧 开发工具¶
5.1 rustfmt¶
自动格式化代码:
5.2 clippy¶
代码检查和优化建议:
5.3 rustdoc¶
生成文档:
/// 计算两个数的和
///
/// # 参数
/// * `a` - 第一个数
/// * `b` - 第二个数
///
/// # 返回值
/// 返回两个数的和
///
/// # 示例
/// ```
/// let result = add(2, 3);
/// assert_eq!(result, 5);
/// ```
fn add(a: i32, b: i32) -> i32 {
a + b
}
生成并查看文档:
📝 练习题¶
练习 1:环境验证¶
- 安装 Rust 并验证版本
- 创建一个新项目
- 编写并运行一个简单的程序
练习 2:Cargo 项目¶
- 创建一个库项目
- 添加一个公共函数
- 编写测试用例
- 运行测试
练习 3:文档生成¶
- 为函数添加文档注释
- 生成项目文档
- 在浏览器中查看文档
💡 最佳实践¶
1. 使用 rustup 管理 Rust 版本¶
# 查看已安装的版本
rustup show
# 安装特定版本
rustup install 1.70.0
# 切换默认版本
rustup default 1.70.0
# 为特定项目设置版本
rustup override set 1.70.0
2. 使用 Cargo 工作空间¶
对于大型项目,使用工作空间管理多个包:
3. 配置 .gitignore¶
4. 使用预编译依赖¶
⚠️ 常见问题¶
Q1: 安装速度慢怎么办?¶
A: 使用国内镜像源:
Q2: 编译速度慢怎么办?¶
A: 优化编译速度:
Q3: 如何卸载 Rust?¶
A: 使用 rustup:
📚 扩展阅读¶
🎯 本章小结¶
本章介绍了 Rust 的历史、特点和优势,并指导您完成了开发环境的搭建。您现在应该能够:
- ✅ 了解 Rust 的设计理念和核心特性
- ✅ 完成 Rust 开发环境的安装和配置
- ✅ 使用 Cargo 创建和管理项目
- ✅ 编写并运行简单的 Rust 程序
- ✅ 使用基本的开发工具
下一章: 我们将学习 Rust 的基础语法,包括变量、数据类型、函数和控制流。