第五章:模块境 · 构建术式藏经阁
"术不可一览而尽,灵不可乱而无序。将万法藏于阁中,方能道术归一。"
顾行云在编撰灵兽系统时,法术文件越写越长,变量冲突频发,灵气流转迟缓。他终于意识到:术不可杂糅一处,需分门别类,自成篇章。
他于古法中悟出一术:模块化(Modularization)。
一、mod
之术:建立灵术篇章
顾行云开始划分篇章,例如将灵兽相关逻辑存于 spirit.rs
:
Rust
// 文件:spirit.rs
pub struct Spirit {
pub name: String,
pub power: u32,
}
在主术式中引用它:
rust
mod spirit;
use spirit::Spirit;
fn main() {
let s = Spirit { name: "凤影".to_string(), power: 99 };
println!("召唤灵兽:{}(力量:{})", s.name, s.power);
}
mod
为藏经阁入口,use
则是借阅灵术之匙。
二、pub
之印:通灵共享符
他发现没有加 pub
的灵术成员在主法术中不可见。于是领悟"公开之印":
-
默认模块内容私有;
-
pub
标记后,方可他处引用。
即:
rust
pub fn summon() { /* ... */ }
三、层叠藏经阁:嵌套模块奥义
他进一步构建层级法藏:
src/
├── main.rs
├── beast/
│ ├── mod.rs
│ ├── fire.rs
│ └── ice.rs
在 mod.rs
中:
rust
pub mod fire;
pub mod ice;
主程序中:
rust
mod beast;
use beast::fire::ignite;
fn main() { ignite();
}
顾行云笑道:"藏术有序,调术有道。"
附术:藏经阁里的试炼封印
在每个模块中也可内设试炼术:
rust
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_spirit_power() {
let s = Spirit { name: "雷狐".into(), power: 100 };
assert_eq!(s.power, 100);
}
}
模块诀 · 藏术之理
术不可散而无理,亦不可繁而不藏;藏之以篇,引之以匙,掌之以印,试之以封。
https://www.cnblogs.com/niceWk/p/18971749## 第五章:模块境 · 构建术式藏经阁
"术不可一览而尽,灵不可乱而无序。将万法藏于阁中,方能道术归一。"
顾行云在编撰灵兽系统时,法术文件越写越长,变量冲突频发,灵气流转迟缓。他终于意识到:术不可杂糅一处,需分门别类,自成篇章。
他于古法中悟出一术:模块化(Modularization)。
一、mod
之术:建立灵术篇章
顾行云开始划分篇章,例如将灵兽相关逻辑存于 spirit.rs
:
Rust
// 文件:spirit.rs
pub struct Spirit {
pub name: String,
pub power: u32,
}
在主术式中引用它:
rust
mod spirit;
use spirit::Spirit;
fn main() {
let s = Spirit { name: "凤影".to_string(), power: 99 };
println!("召唤灵兽:{}(力量:{})", s.name, s.power);
}
mod
为藏经阁入口,use
则是借阅灵术之匙。
二、pub
之印:通灵共享符
他发现没有加 pub
的灵术成员在主法术中不可见。于是领悟"公开之印":
-
默认模块内容私有;
-
pub
标记后,方可他处引用。
即:
rust
pub fn summon() { /* ... */ }
三、层叠藏经阁:嵌套模块奥义
他进一步构建层级法藏:
src/
├── main.rs
├── beast/
│ ├── mod.rs
│ ├── fire.rs
│ └── ice.rs
在 mod.rs
中:
rust
pub mod fire;
pub mod ice;
主程序中:
rust
mod beast;
use beast::fire::ignite;
fn main() { ignite();
}
顾行云笑道:"藏术有序,调术有道。"
附术:藏经阁里的试炼封印
在每个模块中也可内设试炼术:
rust
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_spirit_power() {
let s = Spirit { name: "雷狐".into(), power: 100 };
assert_eq!(s.power, 100);
}
}
模块诀 · 藏术之理
术不可散而无理,亦不可繁而不藏;藏之以篇,引之以匙,掌之以印,试之以封。