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

第五章:模块境 · 构建术式藏经阁

“术不可一览而尽,灵不可乱而无序。将万法藏于阁中,方能道术归一。”

顾行云在编撰灵兽系统时,法术文件越写越长,变量冲突频发,灵气流转迟缓。他终于意识到:术不可杂糅一处,需分门别类,自成篇章。

他于古法中悟出一术:模块化(Modularization)

一、mod之术:建立灵术篇章

顾行云开始划分篇章,例如将灵兽相关逻辑存于 spirit.rs

/* by 01022.hk - online tools website : 01022.hk/zh/reproduce.html */
// 文件:spirit.rs
pub struct Spirit {
    pub name: String,
    pub power: u32,
}

在主术式中引用它:

/* by 01022.hk - online tools website : 01022.hk/zh/reproduce.html */
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 标记后,方可他处引用。

即:

pub fn summon() { /* ... */ }

三、层叠藏经阁:嵌套模块奥义

他进一步构建层级法藏:

src/
├── main.rs
├── beast/
│   ├── mod.rs
│   ├── fire.rs
│   └── ice.rs

mod.rs 中:

pub mod fire;
pub mod ice;

主程序中:

mod beast;
use beast::fire::ignite;

fn main() {    ignite();
}

顾行云笑道:“藏术有序,调术有道。”

附术:藏经阁里的试炼封印

在每个模块中也可内设试炼术:

#[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

// 文件:spirit.rs
pub struct Spirit {
    pub name: String,
    pub power: u32,
}

在主术式中引用它:

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 标记后,方可他处引用。

即:

pub fn summon() { /* ... */ }

三、层叠藏经阁:嵌套模块奥义

他进一步构建层级法藏:

src/
├── main.rs
├── beast/
│   ├── mod.rs
│   ├── fire.rs
│   └── ice.rs

mod.rs 中:

pub mod fire;
pub mod ice;

主程序中:

mod beast;
use beast::fire::ignite;

fn main() {    ignite();
}

顾行云笑道:“藏术有序,调术有道。”

附术:藏经阁里的试炼封印

在每个模块中也可内设试炼术:

#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn test_spirit_power() {
        let s = Spirit { name: "雷狐".into(), power: 100 };
        assert_eq!(s.power, 100);
    }
}

模块诀 · 藏术之理

术不可散而无理,亦不可繁而不藏;藏之以篇,引之以匙,掌之以印,试之以封。


⬅️ 上一章            [下一章 待续➡️]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值