简介与环境搭建
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 与其它语言对比
| 方面 | Rust | C++ | Go |
|---|---|---|---|
| 内存管理 | 所有权(编译期) | 手动 new/delete | GC |
| 空指针 | 没有(Option 替代) | 有 | 有(nil) |
| 数据竞争 | 编译期拒绝 | 运行时未定义 | 运行时 panic |
| 包管理 | Cargo(内置) | 第三方(vcpkg/Conan) | go mod |
| 学习曲线 | 陡峭 | 非常陡峭 | 平缓 |
| 适用领域 | 系统、Web、嵌入、wasm | 系统、游戏、桌面 | Web、CLI、微服务 |
一句话小结
Rust 用所有权机制在编译期消除内存 bug,Cargo 提供了现代化的构建体验。cargo new 创建项目,cargo run 编译运行。下一篇 基本语法。
练习
- 在本地完成 Rust 环境安装,运行
rustc --version确认。 - 用
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最后更新于