1、Rust入门:Rust发展史、Rust核心优势、Rust开发环境搭建(rustup、cargo)、第一个Rust程序
大家好,我是你们的老朋友。今天咱们正式开启 Rust 的学习之旅。说实话,每次带新人入门 Rust,我都能回想起自己第一次接触这门语言时的感受——既兴奋又有点懵。别担心,这一章我会把最基础的东西讲透,让你稳稳地迈出第一步。
1.1 Rust 发展史:从 Mozilla 到全明星
Rust 的故事要从 2006 年说起。当时 Mozilla 的一位工程师 Graydon Hoare 觉得现有的系统编程语言都不够安全,于是搞了个个人项目。嗯,你没听错,最初只是个人兴趣。
到了 2009 年,Mozilla 正式赞助了这个项目。2015 年,Rust 1.0 稳定版发布,这算是一个里程碑。我记得那时候社区里大家都在庆祝,因为等了太久了。
真正让 Rust 出圈的是 2021 年——Linux 内核宣布支持 Rust。你想想看,连 Linux 这种级别的项目都开始拥抱 Rust,说明这门语言确实有两把刷子。
关键时间节点:
- 2006 年:Graydon Hoare 开始个人项目
- 2009 年:Mozilla 正式赞助
- 2015 年:Rust 1.0 稳定版发布
- 2021 年:Linux 内核支持 Rust
- 2023 年:Rust 进入 TIOBE 前 20 名
1.2 Rust 核心优势:为什么选它?
很多新手会问:我为什么要学 Rust?C++ 不香吗?Python 不香吗?
说白了,Rust 解决了系统编程里最头疼的问题——内存安全。我在项目中遇到过好几次 C++ 的内存泄漏,排查起来简直要命。Rust 通过所有权系统,在编译阶段就把这些问题扼杀了。
Rust 的三大核心优势:
- 内存安全:没有空指针、没有野指针、没有数据竞争。编译器帮你把关。
- 零成本抽象:高级语言的表达力,底层语言的性能。你写的高层代码,编译后和手写汇编一样快。
- 无畏并发:Rust 的所有权模型让并发编程变得安全。我曾经在项目中用 Rust 写多线程,一次死锁都没遇到。
我的个人建议:如果你做系统编程、嵌入式、WebAssembly 或者对性能有极致要求的项目,Rust 绝对是首选。别被它的学习曲线吓到,熬过前两周就好了。
1.3 开发环境搭建:rustup 和 cargo
好,理论说完了,咱们来点实际的。搭建环境其实很简单,就两步。
1.3.1 安装 rustup
rustup 是 Rust 的版本管理工具。我个人习惯用这个,因为它可以随时切换 Rust 版本。
Linux/macOS:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Windows: 去官网下载 rustup-init.exe 就行。
安装完成后,验证一下:
rustc --version
# 输出类似:rustc 1.75.0 (e0827787a 2024-01-25)
注意:我曾经遇到过 Windows 用户安装后找不到 rustc 命令。这是因为环境变量没刷新。重启终端或者手动刷新一下 PATH 就好了。
1.3.2 认识 cargo
cargo 是 Rust 的包管理器和构建工具。说白了,它就像 Python 的 pip + setuptools 合体。你想想看,一个工具搞定所有事情,多省心。
常用 cargo 命令:
| 命令 | 作用 |
|---|---|
| cargo new | 创建新项目 |
| cargo build | 编译项目 |
| cargo run | 编译并运行 |
| cargo check | 检查代码能否编译(不生成可执行文件) |
| cargo test | 运行测试 |
小技巧:开发时多用 cargo check,它比 cargo build 快很多。我一般写几行代码就 check 一下,确保没有语法错误。
1.4 第一个 Rust 程序:Hello, World!
终于到了写代码的环节。咱们用 cargo 创建一个新项目:
cargo new hello_rust
cd hello_rust
cargo 会自动生成一个 src/main.rs 文件。打开看看:
fn main() {
println!("Hello, world!");
}
运行它:
cargo run
你会看到输出:
Compiling hello_rust v0.1.0 (/path/to/hello_rust)
Finished dev [unoptimized + debuginfo] target(s) in 0.34s
Running `target/debug/hello_rust`
Hello, world!
嗯,就是这么简单。但别小看这几行代码,它背后包含了 Rust 的核心概念:
fn main()是程序的入口函数println!是一个宏(注意那个感叹号)- Rust 的语句以分号结尾
避坑指南:我曾经见过新手把 println! 写成 println,少了感叹号。编译器会报错说找不到这个函数。记住,带感叹号的是宏,不带的是普通函数。
知识体系总览
下面这张图帮你理清本章的知识结构:
这张图把本章内容串起来了。从发展史到核心优势,再到环境搭建和第一个程序,每一步都是环环相扣的。
最后说两句:环境搭建这块,如果遇到问题别硬扛。去 Rust 中文社区或者 Stack Overflow 搜一下,基本都能找到答案。我当年装 rustup 也折腾了半小时,后来发现是网络问题。换个镜像源就好了。