Rust 学习笔记:我的第一个 Rust 程序
Rust 学习笔记:我的第一个 Rust 程序
Rust 的程序结构
Rust 的程序结构强调模块化、封装和清晰的代码组织,其核心概念包括:包(Crate)、模块(Module) 和工作区(Workspace)。
典型的 Rust 项目结构如下:
rust_project/
├── Cargo.toml # 包配置
├── src/
│ ├── main.rs # 二进制入口
│ ├── lib.rs # 库入口
│ └── utils/ # 子模块目录
│ ├── mod.rs # 模块声明和内容
│ └── helper.rs # 子模块
├── tests/ # 集成测试
├── benches/ # 基准测试
└── examples/ # 示例代码
Rust 的程序结构通过 包 → 模块 → 项 的层级关系,结合严格的可见性控制和模块化设计,确保了代码的可维护性和封装性。合理使用 Cargo.toml、模块划分和路径引用,可以高效管理复杂项目。
包(Crate)
包是 Rust 的独立编译单元,可以是二进制程序(可执行文件)或库(供其他项目调用)。
每个包必须包含一个 Cargo.toml 文件,用于定义包的元数据、依赖和构建配置。
入口文件:
- 二进制包:入口是 src/main.rs,编译为可执行文件。
- 库包:入口是 src/lib.rs,编译为库文件(.rlib 或动态库)。
模块(Module)
模块用于将代码按功能划分为逻辑单元,支持嵌套。
显式定义,在文件中直接使用 mod 关键字:
mod my_module {
pub fn hello() { // pub 表示对外可见
println!("Hello from my_module!");
}
}
默认私有,通过 pub 关键字暴露接口。
或者通过文件或目录隐式定义:
- 文件 src/my_module.rs → 对应模块 my_module。
- 目录 src/my_module 下的 mod.rs → 对应模块 my_module。
工作区(Workspace)
工作区允许将多个包组织在一起,共享构建缓存和依赖。
在根目录的 Cargo.toml 中定义成员包:
[workspace]
members = ["crate1", "crate2"]
resolvers = "2" # 可选依赖解析器版本
使用 RustRover 创建并运行项目
使用 RustRover 新建一个项目:

在 main.rs 中编辑代码:
use std::io::stdin;
fn main() {
let mut msg = String::new();
println!("Please enter message:");
stdin().read_line(&mut msg).unwrap();
println!("Message: {}", msg);
}
程序第一行的意思是,从 std::io 标准库引入 stdin 函数。
程序声明了一个字符串类型的可变变量,叫做 msg。
程序接收用户的输入,再重新输出。
在 IDE 上点击 Run,会进行编译和运行。
编译的结果就是一个 exe 文件:

运行结果:

命令行编译、运行 Rust 程序
也可以命令行编译、运行,有两种方法。
第一种是用 rustc 进行编译,适用于简单的程序。

第二种是用 cargo 进行编译,推荐用这种。


被折叠的 条评论
为什么被折叠?



