08 rust基础module 模块
Rust 中的模块(Module)
模块(Module) 是 Rust 中用来组织代码的主要工具,它允许你将代码划分为多个逻辑单元,从而提高可读性和可维护性。模块可以包含函数、结构体、枚举、常量、trait 等,也可以嵌套子模块。
模块的定义与使用
1. 模块的定义
可以使用 mod 关键字定义一个模块:
mod my_module {
pub fn greet() {
println!("Hello from my_module!");
}
}
这里的 my_module 是模块的名字。
2. 使用模块
模块内部的内容默认是私有的,需要通过 pub 关键字公开后才能在模块外访问:
mod my_module {
pub fn greet() {
println!("Hello from my_module!");
}
}
fn main() {
my_module::greet(); // 调用模块中的函数
}
3. 嵌套模块
模块可以嵌套,也可以通过路径访问:
mod outer_module {
pub mod inner_module {
pub fn greet() {
println!("Hello from inner_module!");
}
}
}
fn main() {
outer_module::inner_module::greet();
}
模块的文件结构
单文件模块
所有代码可以写在一个文件里,用 mod 定义模块。
多文件模块
当代码量较大时,可以将模块拆分为多个文件。
例如:
-
创建
main.rs:mod my_module; fn main() { my_module::greet(); } -
创建
my_module.rs文件:pub fn greet() { println!("Hello from a separate file!"); }
这样,my_module 模块的实现就放在了单独的文件中。
模块目录结构
如果模块有子模块,可以使用目录结构。例如:
src/
├── main.rs
├── outer_module/
│ ├── mod.rs
│ └── inner_module.rs
outer_module/mod.rs文件定义outer_module模块。outer_module/inner_module.rs定义子模块inner_module。
使用 use 简化模块路径
1. 引入模块路径
使用 use 可以将模块路径引入当前作用域,简化访问:
mod my_module {
pub fn greet() {
println!("Hello!");
}
}
use my_module::greet;
fn main() {
greet(); // 不需要写 my_module::greet
}
2. 重命名
可以通过 as 重命名模块路径:
mod my_module {
pub fn greet() {
println!("Hello!");
}
}
use my_module::greet as say_hello;
fn main() {
say_hello(); // 使用重命名后的路径
}
3. 引入多个内容
用大括号引入多个模块内容:
mod my_module {
pub fn greet() {
println!("Hello!");
}
pub fn farewell() {
println!("Goodbye!");
}
}
use my_module::{greet, farewell};
fn main() {
greet();
farewell();
}
常见模块相关关键字
mod: 定义模块。pub: 将模块的内容公开。use: 引入模块路径到当前作用域。super: 引用父模块。self: 引用当前模块。
总结
-
模块的作用:
- 组织代码,提高可读性和复用性。
- 封装实现,暴露公共接口。
-
文件与模块的关系:
- 模块可以拆分为多个文件,文件名和模块名一致。
- 使用文件夹管理模块可以构建复杂的项目结构。
-
模块的访问:
- 默认私有,使用
pub公开。 - 使用
use简化路径访问。
- 默认私有,使用

浙公网安备 33010602011771号