Rust修仙之道 第三章:所有权境 · 断念诀

第三章:所有权境 · 断念诀

“天下术士皆惧‘所有权审判’,唯入此境者,能断执念、知归属、通幽微。”

顾行云在“灵气变通殿”闭关九日后,终于触碰到这门 Rust 真义——所有权(Ownership)。据说古籍称此技为“断念诀”,目的就是让修士断其依赖,知其归处,防止灵气流逸于未知空间。

一、所有权三律 · 三断心法

古卷记载所有权定律:

  1. 每一灵气之值(变量)只属于一名修士(所有者)

  2. 若所有者转交,他人即得此灵气之主权

  3. 若原主不再持有,切不可再执念调用——否则业火 borrow checker 降临!

二、转移与赋予 —— 所有权转移术

顾行云尝试如下术式:

fn main() {
    let spell = String::from("风刃术");
    cast(spell);     // 所有权转移至函数内
    println!("{}", spell); // ❌ 编译错误!spell 已无所有权!
}

fn cast(name: String) {
    println!("施展:{}", name);
}

原来,一旦将变量传入函数,原主便再无掌控之权。Rust 借此防止悬空灵气影响世界运行稳定性。

三、借用之道 —— 可控共享术

但若只是阅读灵气而不施法,是否能短暂借用?

fn observe(name: &String) {
    println!("观察灵术:{}", name);
}

顾行云这才悟出:

  • &T:不可变借用(读者灵视);

  • &mut T:可变借用(灵气改写权,单人独享);

  • 借用期间,所有权仍归本体,不生转移。

他推演术式示例:

let mut spell = String::from("雷击术");
amplify(&mut spell); // 借用并强化

fn amplify(s: &mut String) {
    s.push_str("·超强版");
}

四、双重持有之禁 —— 编译器审灵者的怒火

顾行云一时贪功:

let mut qi = String::from("光流");
let r1 = &qi;
let r2 = &mut qi;  // ❌ 编译怒吼:同时借用与变更,灵气紊乱!

借阅须诚,变更须独。一念贪心,便惹灵暴。

五、灵气归返术 —— 所有权回赠

如欲在函数中使用灵气,又不希望完全转移,该如何是好?顾行云悟出“归返术”:

fn empower(s: String) -> String {
    println!("强化灵术:{}", s);
    s
}

let incantation = String::from("火雨");
let incantation = empower(incantation); // 灵气归返

术式口诀 · 所有权之道

授而不归,灵失不现;借而无度,祸发源泉;断其念,得其境,行天下皆不乱。


⬅️ 上一章           下一章 ➡️

posted @ 2025-07-07 14:25  NiceWk  阅读(81)  评论(0)    收藏  举报