Rust修仙之道 第七章 契约境 · Trait 与多灵共鸣之道

第七章:契约境 · Trait 与多灵共鸣之道

"灵形虽异,道心可同。若得共鸣,万象皆可一术施行。"

顾行云修习至此,灵体愈发多样。有灵兽、有术阵、有祭器,每者行为不同。但他突然思考:为何每次施术都需写不同函数?是否可定一'共通心法',使灵体契约同源之技?

正此时,《Rust之书》卷轴打开------"Trait 术 · 灵能契约篇"映入眼帘。

一、定义契约 · Trait之印

他首先刻下一个灵体契约 Castable,意指"可施术者":

rust 复制代码
trait Castable {
    fn cast(&self);
}

此为灵族协约之印,任何类型一旦签署(实现)此印,便可召唤统一之术。

二、为灵族签约 · Impl 绑定

他为不同灵族签下契约:

rust 复制代码
struct FireBeast;
struct IceRune;

impl Castable for FireBeast {
    fn cast(&self) {
        println!("🔥 火兽燃魂一击!");
    }
}

impl Castable for IceRune {
    fn cast(&self) {
        println!("❄️ 冰符凝霜结界!");
    }
}

三、统一施术 · 多灵共鸣召唤

此后,无论是火兽还是冰符,只需一句:

rust 复制代码
fn activate<T: Castable>(item: T) {
    item.cast();
}

T: Castable 即为约定"此灵体签订了 Castable 术契"。

或使用动态引用召唤灵体:

rust 复制代码
fn trigger(item: &dyn Castable) {
    item.cast();
}

四、拓展接口 · 默认契约之术

他还为契约写下默认施术方法:

rust 复制代码
trait Castable {
    fn cast(&self) {
        println!("✨ 灵术默认释放------无个性输出");
    }
}

若某灵体未定专属方法,也能借用默认施法------"通用灵纹"。

五、Trait vs OOP:不一样的共鸣方式

顾行云也曾修习世俗 OOP 编程之术,今观 Trait,顿悟:

比较维度 OOP 接口 Rust Trait(契约术)
继承结构 类层级(Inheritance) 扁平解耦(实现者自选)
动态多态 虚函数 + vtable dyn Trait + 安全抽象
静态优化 难以内联优化 零成本抽象(泛型实现)
默认方法支持 ✅ 支持 ✅ 同样支持

顾行云欣然书写:

"Trait 非唯契约之术,实乃多灵合道之规。"

术式口诀 · 契约之理

异象可通心,一术可众形;明契共鸣路,法不必千名。


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