跳至内容

简介与环境搭建

Rust 是一门系统级编程语言,以零成本抽象、内存安全(无需 GC)、无畏并发三大支柱著称。这篇先搞清楚 Rust 的定位和优势,然后搭好开发环境,跑通第一个程序。

Rust 是什么

Rust 最初由 Graydon Hoare 于 2006 年创造,Mozilla 孵化,如今由 Rust 基金会和开源社区维护。它的目标很明确:做 C/C++ 的系统编程领域,但消灭内存安全 bug。

Rust 的设计哲学:

  • 性能:编译到原生机器码,无运行时/无 GC,性能对标 C/C++
  • 安全:所有权(Ownership)系统在编译期消除空指针、悬垂引用、数据竞争等内存 bug
  • 并发:类型系统确保线程安全,「无畏并发」不是口号——编译器替你检查

如果你写过 C/C++,Rust 给你同样的控制力但没有 segfault;如果你写过 Go/Python,Rust 的编译器会比 linter 更严格,但严格换来的是运行时几乎不出错。

Rust 能做什么

  • 系统编程:操作系统(Redox)、驱动、嵌入式(ARM Cortex-M)
  • 网络服务:高性能 Web 后端、API 网关、消息队列
  • CLI 工具:ripgrep、fd、bat 等明星工具都是用 Rust 写的
  • WebAssembly:Rust 编译到 wasm 是一流体验,可用于浏览器端高性能计算
  • 区块链/数据库:使用 Rust 构建的数据库引擎、区块链节点越来越多
  • 游戏引擎:Bevy 等用 ECS 架构的游戏引擎正在崛起

环境搭建

Windows

前提:安装 Microsoft C++ Build Tools。

最简单的方式是通过 Visual Studio Installer,安装「使用 C++ 的桌面开发」工作负载。

然后下载 rustup-init.exe (64位),双击运行,一路默认即可。

Linux / macOS

# Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# macOS (Homebrew)
brew install rustup-init
rustup-init

安装完成后,验证:

rustc --version    # rustc 1.91.0 (xxx)
cargo --version    # cargo 1.91.0 (xxx)
rustup --version   # rustup 1.28.x

工具链管理

Rust 每 6 周发布一个新版本,通过三个频道发布:stable(生产可用)、beta(预发布)、nightly(每日构建,含实验性特性)。

rustup 是 Rust 的版本管理工具:

rustup update            # 更新 Rust
rustup default stable    # 使用 stable 频道
rustup default nightly   # 切换到 nightly
rustup toolchain list    # 查看已安装的工具链
对于初学者,使用 stable 频道就够了。nightly 仅在需要实验性特性(如嵌入式开发)时才需要。

第一个 Rust 程序

创建项目——Rust 使用 Cargo 作为构建系统和包管理器:

cargo new hello-rust
cd hello-rust

目录结构:

hello-rust/
  Cargo.toml    # 项目配置(类似 package.json)
  src/
    main.rs     # 入口文件

src/main.rs

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

编译运行:

cargo run    # 编译并执行,输出: Hello, Rust!
cargo build  # 仅编译(debug 模式),产物在 target/debug/
cargo build --release  # release 模式,开启优化
println! 带感叹号——它是宏(macro),不是函数。Rust 的宏在编译期展开,是实现元编程的利器。后续会大量见到 ! 结尾的东西,记住「宏调用」即可。

Rust 与其它语言对比

方面RustC++Go
内存管理所有权(编译期)手动 new/deleteGC
空指针没有(Option 替代)有(nil)
数据竞争编译期拒绝运行时未定义运行时 panic
包管理Cargo(内置)第三方(vcpkg/Conan)go mod
学习曲线陡峭非常陡峭平缓
适用领域系统、Web、嵌入、wasm系统、游戏、桌面Web、CLI、微服务

一句话小结

Rust 用所有权机制在编译期消除内存 bug,Cargo 提供了现代化的构建体验。cargo new 创建项目,cargo run 编译运行。下一篇 基本语法

练习

  1. 在本地完成 Rust 环境安装,运行 rustc --version 确认。
  2. cargo new my-first-rust 创建一个项目,修改 main.rs 让它打印你的名字,然后 cargo run
参考答案
cargo new my-first-rust
cd my-first-rust

编辑 src/main.rs

fn main() {
    println!("你好,我是 Rust 初学者!");
}
cargo run
最后更新于