1. Rust 语言概述和环境搭建
Rust 最初是由 Mozilla 工程师 Graydon Hoare 开发,在 2006 年左右,Graydon Hoare 因不满系统编程语言在内存安全与性能之间的难以兼得,便主导了 Rust 这个业余项目。2009 年,项目得到了 Mozilla 的关注,并开始正式赞助 Rust,2010年,Rust 作为 Mozilla 官方项目首次对外公开。
1.1. 概述
1.1.1. 什么是 Rust
Rust 是一门现代系统编程语言,其设计目标是保证系统编程语言的高性能的同时,保证内存安全,总结起来,Rust 的整体设计目标就是:高性能,内存安全和可靠性。
作为一门系统编程语言,可以胜任的方向如下:
- 系统开发;
- 后端服务;
- 命令行工具;
- 嵌入式开发;
- WebAssembly。
1.1.2. Rust 语言的优势
- 高性能。Rust 编译后直接生成机器代码,没有虚拟机运行环境,性能接近 C/C++。
- 内存安全。Rust 通过所有权系统,在编译阶段检查内存生命周期、引用有效性、数据访问规则。 从而避免空指针,野指针,内存泄漏等问题。
- 无垃圾回收。Rust 不采用 Java、Go 中的垃圾回收机制。而内存释放是由所有权和生命周期在编译阶,段完成。
- 丰富的类型系统。Rust 提供强类型、模式匹配、Trait、泛型,可以构建安全可靠的大型程序。
1.2. Rust 开发环境搭建
开始学习 Rust 语言之前,首先要在本地搭建 Rust 的开发环境,Rust 编译工具可以去官方网站下载,官网的下载地址为:https://www.rust-lang.org/zh-CN/tools/install。进去后,会根据你当前的系统推荐对应的下载,我这里以 Windows 为例,如下:

选择对应的版本,执行安装。安装过程在这里就不再赘述了。其他的系统,如 macOS,Linux 或其他类 Unix 系统需要下载对应的编译工具。
安装完成后,在命令行输入命令:
rustc -V
如果安装成功后,会打印出 Rust 编译工具的版本信息,如下:

这里的 rustc 就是 Rust 的编译工具,安装成功后,除了帮你安装好了 Rust 的编译工具 rustc 之外,还包含了:
- cargo:项目管理工具
- rustup:工具链管理
- rustfmt:代码格式化
- clippy:代码检查
这些在后面章节会详细介绍。
1.3. 第一个程序
学习编程语言,好像完成打印 “Hello World” 已经成为标配的第一段代码,这里也实现一个 “Hello World” 的打印程序。
1.3.1. 编写“hello world”
首先,创建一个文件夹,在该文件夹中新建一个 rust 文件,命名为 hello_world.rs。注意,Rust 文件以 .rs 扩展名结尾。rust 文件名的命名时推荐使用 snake_case,即全部小写,单词之间使用下划线 _ 连接。具体代码如下:
fn main() {
println!("hello world");
}
使用 rustc 对 rust 源文件编译:
rustc hello_world.rs
此时,得到了编译后的二进制可执行文件 hello_world,下面执行该文件:
./hello_world
在使用 rustc 对 rust 源文件编译,也可以指定特定的输出,代码如下:
rustc hello_world.rs -o main
这样,生成的二进制程序的名称就是 main。
1.3.2. 代码分析
上面代码虽然简短,只有三行,但它已经包含了 Rust 中几个最重要的语法概念:函数、入口函数、代码块、宏、字符串、语句等。
首先,main() 函数是 Rust 程序的入口,且对于 Rust 程序来说,如果是可执行程序,必须有一个名为 main 的函数。fn 是 Rust 的关键字,表示的是后面的 main 是一个函数,定义函数的语法如下:
fn 函数名(函数参数列表) -> 返回值类型 {
函数体
}
在 main 函数中,函数参数列表为空,返回值也为空,更加复杂的函数形式,我们将会在后面的章节中详细介绍。函数体部分是由语句构成的,在 Rust 中规定语句以分号 ; 结尾。在上面函数体中只包含了一条语句,作用是打印“hello world”。注意这里的 println! 并不是一个函数,而是一个 Rust 宏。Rust 宏是一种用来编写可生成代码的代码,是一种扩展 Rust 语法的方式。
1.4. Cargo 与项目管理
仅仅使用 rustc 编译简单程序是没问题的,不过随着项目的增长,你可能需要管理你项目的方方面面,并让代码易于分享。Cargo 就是这样的工具,Cargo 是 Rust 官方提供的构建工具和包管理工具,它不仅负责创建项目、编译代码、运行程序,还承担着依赖管理、测试、文档生成以及发布等任务。可以说,Cargo 是 Rust 生态系统的核心。
1.4.1. 什么是 Cargo
Cargo 是 Rust 官方提供的项目管理工具,也是 Rust 默认的构建系统和包管理器。当我们安装 Rust(通过 rustup)时,Cargo 会一同安装,因此无需额外下载或配置。可以通过下面的命令查看 Cargo 是否已经安装成功:
cargo -V
只要能够看到版本号,就说明 Cargo 已经安装完成。
1.4.2. Cargo 的常用操作
首先,Cargo 可以帮助创建项目,使用 cargo new 命令能自动生成标准的项目结构,具体代码如下:
cargo new my_project
这样就能生成标准的项目结构,针对上面的例子,我们在当前文件夹下执行 cargo new hello_world,这样就创建了一个项目,目录结构如下:
├── .
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── src
│ │ ├── main.rs
在 src 文件夹下已经初始化了一个 main.rs 文件,文件中要执行的就是打印 “Hello, world!”。Cargo 提供了编译和执行的命令,编译代码如下:
cargo build
这样便会在目录下生成 target 文件夹,该文件夹下就是编译好的可执行文件。也可以直接使用下面的代码编译并运行代码:
cargo run
如果要最终发布,可以在 cargo build 命令后加上 release 参数即可,具体代码如下:
cargo build --release
注意:在用 cargo 初始化并编译执行时,入口文件必须是 main.rs。
除了提供上述编译执行的命令之外,还有代码检查,运行测试,格式化代码,静态检查,生成文档,具体代码如下:
cargo check # 代码检查
cargo test # 运行测试
cargo fmt # 格式化代码
cargo clippy # 静态检查
cargo doc --open # 生成文档
1.4.3. Cargo.toml
在使用 cargo new 创建项目时,会自动生成 Cargo.toml 文件,这是 Rust 项目的配置文件,具体内容如下:
[package]
name = "hello_world"
version = "0.1.0"
edition = "2024"
[dependencies]
其中,name 是项目名称,version 表示当前版本,edition 表示 Rust Edition,dependencies 表示第三方依赖列表,目前为空,后续添加第三方库时,都会在这里进行配置。
1.5. 本章小结
本章简单概述了 Rust 的发展,以及 Rust 的特点,优势等。其次是 Rust 开发环境的搭建,如何编写第一个 “Hello World” 程序,最后介绍了 Rust 中的项目管理工具 Cargo,为后面章节的学习提供必要的基础。