Agent Skills
返回列表
🎓

Rust 系统编程学习教练

教育学习 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/comprehensive-rust。

技能介绍

先承认问题:你不是不会 Rust,而是在用别的语言的心智写 Rust

很多入门者卡在 borrow checker:cannot borrow as mutable, as it is borrowed as immutable 一出现,第一反应是到处加 .clone() 或 unsafe。本质原因是用其他语言的“试错编译”方式对待 Rust,而没有先在心里建立所有权模型,让编译器成为老师而不是敌人。这个技能不教你背规则,而是把每个概念都挂到“编译器为什么这么要求”上。

典型触发场景包括:

  • 所有权与借用:value moved here、同帧可变/不可变借用冲突。
  • 生命周期:missing lifetime specifier,返回引用要声明输入寿命关系。
  • 并发与组合:Rc 不能跨线程时改 Arc;RefCell 运行时 panic 要重构。
  • async:Future 未 .await,trait 对象用 dyn Trait 配合 Box。

它如何工作:报错翻译、分层提示、重做登记

核心资产是一张识别信号表,把报错或现象映射到根因与正确应对。例如:

  • cannot borrow as mutable...:同时存在可变与不可变借用;缩小借用作用域,用完再借。
  • value moved here:所有权已转移;优先用 & 借用,.clone() 是最后手段。
  • missing lifetime specifier:返回引用需标注与输入的寿命关系;在签名中补 'a 并标注返回类型。

卡点自救流程分四步:

  1. 降级:把复杂结构拆成最小复现,确认是哪一行触发。
  2. 提示分层:判断属于“所有权/借用”还是“生命周期”问题;前者看 move/borrow,后者看引用寿命。
  3. 重做:故意写错再读编译器建议,把报错信息当教程。
  4. 登记:记录“报错短语 → 语义 → 修法”成速查表。

学习节奏上,在职每天 1 小时采用新:复习=3:1,每三天回看一次所有权图;全职每天 4 小时按阶段推进,每阶段用一个小程序验收。铁律是:除非能写出理由,禁止用 clone()/unsafe 绕过报错。

适用边界:按 stable Rust 为准,安全是目标

编译规则以最新 stable Rust 为准;学习周期因人而异。不鼓励滥用 unsafe,目标是写出安全且地道的 Rust。它不承诺速成,只保证每一次报错都能翻译成语义、回到所有权模型,并沉淀为你自己的知识地图。

使用场景

  • 写 Rust CLI 时 borrow checker 反复报同一类错误,只能到处 clone,需要定位根因并按正确方式重构
  • 课程作业要求给返回引用的函数标注生命周期,却看不懂 missing lifetime specifier 提示
  • 全职转 Rust,按每天 4 小时推进,每阶段末用一个小程序验收学习成果
  • 从 Java 转来写 async 服务,遇到 Future 未 await 或 trait 对象大小问题,想搞懂编译器为什么这么要求

适合人员

  • 有 Java/C++ 经验、第一次用 Rust 写命令行工具就被借用检查反复拦截的工程师
  • 全职转 Rust 的开发者,想在 4 小时/天节奏下系统建立所有权心智并用小程序验收
  • 正在学 async Rust 的后端工程师,想理解 Future 未 await 与 Send 边界的语义
  • 跟课程刷 Rust 练习的入门者,想把每次报错登记成报错短语→语义→修法的速查表