SuperAPI AI 工具集

move-stdlib

通用与其它

查看项目

更新于 10-16 09:33

技能介绍

用途:这是一份 Sui Move 标准库常用模式的速查参考,帮助开发者写出更简洁、更符合惯例的 Move 代码。

主要能力:

  1. 字符串。使用方法语法创建字符串,如 let s: String = b"hello".to_string(); 以及 ascii::String 形式,无需显式 import utf8。
  2. Coin 与 Balance。引入 sui::coin 和 sui::balance,支持 coin.into_balance() 与 balance.into_coin(ctx) 互转,用 coin.value() 取值;拆分支付可用 payment.split(amount, ctx) 或 payment.balance_mut().split(amount)(后者无需 ctx)。
  3. 无 drop 值的消费与销毁。Move 线性类型要求每个非 drop 值被显式消费,_ 前缀只对带 drop 的值抑制警告,对 Balance、Coin 或自定义无 drop 结构体无效。永久销毁带 key + store 的对象可 transfer::public_transfer(my_obj, @0x0)。Balance 既无 drop 也无 key,不能直接 transfer,balance::destroy_zero 也只适用于空余额,需先 into_coin(ctx) 再用 @0x0 销毁。无任何 ability 的 hot potato 结构体不能用该模式,必须逐字段解构消费。
  4. Option。option::some(42) 创建,opt.destroy_or!(default_value) 宏形式取值,或 opt.borrow()。
  5. 地址与 ID。object::id(&my_obj) 获取 ID,id.to_address() 转地址;删除用 id.delete() 而非 object::delete(id)。
  6. TxContext。用 ctx.sender() 替代 tx_context::sender(ctx)。
  7. 向量。支持字面量 vector[1, 2, 3]、索引 v[0]、方法 v.length(),替代 vector::empty() 与 vector::push_back。
  8. 结构体解包。用 .. 忽略多余字段,如 let MyStruct { id, .. } = value;。

适用场景:编写 Sui Move 智能合约时查表式参考标准库惯用写法,减少冗长调用、避免编译错误。

限制:资料未提供安装命令、版本要求、依赖配置或平台支持说明;示例假定在 Sui Move 环境中使用,具体编译器版本与完整 API 以官方文档为准。