模块系统
mod 声明、pub 可见性、use 导入、super/crate/self 路径
模块系统
Rust 的模块系统——mod 声明、pub 可见性、use 导入——控制代码组织和可见性。
学完本章你将: 掌握 mod 声明、pub 可见性、use 导入、路径。
模块组织
src/
├── main.rs
├── lib.rs # 库根
├── models/
│ ├── mod.rs # 模块声明
│ └── user.rs
└── services/
└── auth.rs
rust
// lib.rs
pub mod models; // 声明 models 模块
pub mod services;
// models/mod.rs
pub mod user; // 声明子模块
// models/user.rs
pub struct User {
pub name: String,
age: u32, // age 是私有的
}
impl User {
pub fn new(name: &str, age: u32) -> Self {
User { name: name.to_string(), age }
}
}
use 导入
rust
// 绝对路径
use crate::models::user::User;
// 相对路径
use super::models::User;
// 重导出
pub use crate::models::user::User; // 外部可以直接 use mylib::User
// 批量导入
use std::collections::{HashMap, HashSet};
use std::io::*; // 导入所有公开项
// 别名
use std::io::Result as IoResult;
可见性规则
rust
mod front_of_house {
pub mod hosting {
pub fn add_to_waitlist() { }
fn seat_at_table() { } // 私有——外部不可见
}
}
// hosting 模块是 pub 的,但 front_of_house 不是
// crate::front_of_house::hosting::add_to_waitlist(); // ✅