找回密码
 立即注册
首页 业界区 业界 Rust修仙之道 第五章:模块境 · 构建术式藏经阁 ...

Rust修仙之道 第五章:模块境 · 构建术式藏经阁

揿纰潦 2025-10-5 14:39:27
第五章:模块境 · 构建术式藏经阁

“术不可一览而尽,灵不可乱而无序。将万法藏于阁中,方能道术归一。”
顾行云在编撰灵兽系统时,法术文件越写越长,变量冲突频发,灵气流转迟缓。他终于意识到:术不可杂糅一处,需分门别类,自成篇章。
他于古法中悟出一术:模块化(Modularization)
一、mod之术:建立灵术篇章

顾行云开始划分篇章,例如将灵兽相关逻辑存于 spirit.rs:
  1. // 文件:spirit.rs
  2. pub struct Spirit {
  3.     pub name: String,
  4.     pub power: u32,
  5. }
复制代码
在主术式中引用它:
  1. mod spirit;
  2. use spirit::Spirit;
  3. fn main() {
  4.     let s = Spirit { name: "凤影".to_string(), power: 99 };
  5.     println!("召唤灵兽:{}(力量:{})", s.name, s.power);
  6. }
复制代码
mod 为藏经阁入口,use 则是借阅灵术之匙。
二、pub之印:通灵共享符

他发现没有加 pub 的灵术成员在主法术中不可见。于是领悟“公开之印”:

  • 默认模块内容私有
  • pub 标记后,方可他处引用。
即:
  1. pub fn summon() { /* ... */ }
复制代码
三、层叠藏经阁:嵌套模块奥义

他进一步构建层级法藏:
  1. src/
  2. ├── main.rs
  3. ├── beast/
  4. │   ├── mod.rs
  5. │   ├── fire.rs
  6. │   └── ice.rs
复制代码
在 mod.rs 中:
  1. pub mod fire;
  2. pub mod ice;
复制代码
主程序中:
  1. mod beast;
  2. use beast::fire::ignite;
  3. fn main() {    ignite();
  4. }
复制代码
顾行云笑道:“藏术有序,调术有道。”
附术:藏经阁里的试炼封印

在每个模块中也可内设试炼术:
  1. #[cfg(test)]
  2. mod tests {
  3.     use super::*;
  4.     #[test]
  5.     fn test_spirit_power() {
  6.         let s = Spirit { name: "雷狐".into(), power: 100 };
  7.         assert_eq!(s.power, 100);
  8.     }
  9. }
复制代码
模块诀 · 藏术之理

术不可散而无理,亦不可繁而不藏;藏之以篇,引之以匙,掌之以印,试之以封。
⬅️ 上一章            下一章➡️


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册