第十一章 · 实战练习
实战一:编译宏示例包
- 进入
src/11_move_macros/code/macro_lab/。 - 执行
sui move build。 - 打开
sources/demo.move,对照 §11.3–11.6 理解add!、fold!、do_ref!等调用。
验收:编译无错误;能向同伴口述「宏在编译期展开、链上无宏」。
实战二:把一段手写循环改成宏
- 在
demo.move的#[test]中新增一个手写while遍历vector,求元素之和。 - 将同一逻辑改写为
fold!(或do_ref!+ 累加变量)。 - 对比两种写法的行数与可读性。
验收:两种写法结果一致;能说明为何宏版本更不易漏改下标。
实战三:Option 宏
- 构造
option::some(42u64)与option::none()。 - 对
some用option::do!执行一次加倍;对none用destroy_or!(0)得到默认值。
验收:理解 destroy_or! 会消费 Option。