跳转至

Rust简介与环境搭建

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
// Rust 在编译时就能发现内存错误
fn main() {
    let mut v = vec![1, 2, 3];
    let first = &v[0]; // 不可变引用
    v.push(4); // 编译错误!不能在存在不可变引用时修改
    println!("{}", first);
}

内存安全保证: - 无空指针解引用 - 无数据竞争 - 无悬垂指针 - 无缓冲区溢出

2. 高性能

Rust 的性能可以媲美 C++,同时提供更高的安全性:

Rust
// 零成本抽象示例
fn process_data(data: &[i32]) -> i32 {
    data.iter()
        .filter(|&&x| x > 0)
        .map(|&x| x * 2)
        .sum()
}

// 编译器会优化成与手写循环相同的机器码

3. 并发安全

Rust 的类型系统在编译时防止数据竞争:

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. 强大的类型系统

Rust
// 泛型和 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(推荐)

  1. 访问 https://rustup.rs/
  2. 下载 rustup-init.exe
  3. 运行安装程序,按提示操作
PowerShell
# 下载并运行 rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

方法二:使用 Chocolatey

PowerShell
choco install rust

macOS 系统

Bash
# 使用 rustup 安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 或使用 Homebrew
brew install rust

Linux 系统

Bash
# 使用 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 验证安装

安装完成后,打开终端验证安装:

Bash
# 检查 Rust 编译器版本
rustc --version

# 检查 Cargo 版本
cargo --version

# 检查 Rust 工具链
rustup show

预期输出示例:

Text Only
rustc 1.85.0 (4d215e2c2 2025-02-20)
cargo 1.85.0 (d73d2caf9 2025-01-15)

2.3 配置开发环境

VS Code 配置

  1. 安装 VS Code
  2. 安装 rust-analyzer 扩展
  3. 安装 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 创建新项目

Bash
# 创建二进制项目
cargo new my_project

# 创建库项目
cargo new --lib my_lib

# 查看项目结构
cd my_project
tree .

项目结构:

Text Only
my_project/
├── Cargo.toml      # 项目配置文件
├── src/
│   └── main.rs     # 源代码
└── .gitignore      # Git 忽略文件

3.3 Cargo.toml 配置

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 命令

Bash
# 构建项目
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

创建并运行第一个程序:

Bash
cargo new hello_world
cd hello_world

编辑 src/main.rs

Rust
fn main() {
    println!("Hello, World!");
}

运行程序:

Bash
cargo run

输出:

Text Only
Hello, World!

4.2 程序解析

Rust
fn main() {
    println!("Hello, World!");
}

代码解析: - fn main():定义主函数,程序入口 - println!:宏,打印文本到控制台 - !:表示这是一个宏调用 - ;:语句结束符

4.3 变量和打印

Rust
fn main() {
    let name = "Rust";
    let version = 1.75;

    println!("Hello, {}!", name);
    println!("Version: {}", version);
    println!("Formatted: {} version {}", name, version);
}

🔧 开发工具

5.1 rustfmt

自动格式化代码:

Bash
# 格式化当前项目
cargo fmt

# 检查格式
cargo fmt -- --check

5.2 clippy

代码检查和优化建议:

Bash
# 运行 clippy
cargo clippy

# 修复可自动修复的问题
cargo clippy --fix

5.3 rustdoc

生成文档:

Rust
/// 计算两个数的和
///
/// # 参数
/// * `a` - 第一个数
/// * `b` - 第二个数
///
/// # 返回值
/// 返回两个数的和
///
/// # 示例
/// ```
/// let result = add(2, 3);
/// assert_eq!(result, 5);
/// ```
fn add(a: i32, b: i32) -> i32 {
    a + b
}

生成并查看文档:

Bash
cargo doc --open

📝 练习题

练习 1:环境验证

  1. 安装 Rust 并验证版本
  2. 创建一个新项目
  3. 编写并运行一个简单的程序

练习 2:Cargo 项目

  1. 创建一个库项目
  2. 添加一个公共函数
  3. 编写测试用例
  4. 运行测试

练习 3:文档生成

  1. 为函数添加文档注释
  2. 生成项目文档
  3. 在浏览器中查看文档

💡 最佳实践

1. 使用 rustup 管理 Rust 版本

Bash
# 查看已安装的版本
rustup show

# 安装特定版本
rustup install 1.70.0

# 切换默认版本
rustup default 1.70.0

# 为特定项目设置版本
rustup override set 1.70.0

2. 使用 Cargo 工作空间

对于大型项目,使用工作空间管理多个包:

TOML
# Cargo.toml
[workspace]
members = [
    "core",
    "cli",
    "server",
]

3. 配置 .gitignore

Text Only
/target/
**/*.rs.bk
Cargo.lock

4. 使用预编译依赖

Bash
# 使用预编译的二进制文件加速构建
export RUST_USE_CROSS=1

⚠️ 常见问题

Q1: 安装速度慢怎么办?

A: 使用国内镜像源:

Bash
# 设置环境变量
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup

Q2: 编译速度慢怎么办?

A: 优化编译速度:

TOML
# Cargo.toml
[profile.dev]
opt-level = 0  # 关闭优化

Q3: 如何卸载 Rust?

A: 使用 rustup:

Bash
rustup self uninstall

📚 扩展阅读

🎯 本章小结

本章介绍了 Rust 的历史、特点和优势,并指导您完成了开发环境的搭建。您现在应该能够:

  • ✅ 了解 Rust 的设计理念和核心特性
  • ✅ 完成 Rust 开发环境的安装和配置
  • ✅ 使用 Cargo 创建和管理项目
  • ✅ 编写并运行简单的 Rust 程序
  • ✅ 使用基本的开发工具

下一章: 我们将学习 Rust 的基础语法,包括变量、数据类型、函数和控制流。