总结
在本课程中,我们介绍了 Sui 框架提供的许多标准库。这些库涵盖了诸如 String、Option、FixedPoint32 等额外类型。还有数学库和其他库,帮助开发者在 Move 中编写安全且易于理解的代码。
大多数库可以在 std:: 下找到,但有一些例外,例如 bcs、url 或 versioned 在 sui:: 下。当编写 Move 代码时,开发者应尽可能使用提供的库,因为:
- 它们以高效的方式编写,并且可能在以后接收更多优化,例如转换为更高效的原生 Rust 代码。
- 它们经过广泛测试、审计和实战测试。这确保了不会因为小错误导致难以调试的问题。
我们介绍了以下库及其使用场景:
- 字符串(String) - 一种半原始类型,技术上是一个结构体,但可以作为交易的一部分自由传递给函数作为参数。
- Option - 一种辅助类型,用于表示可选值。不能通过交易传递。
- FixedPoint32 - 一种数字类型,在 Move 中表示分数数字很有用,因为 Move 没有对它们的原生支持。不能通过交易传递。
- 交易上下文 (Transaction context) - 一个系统对象,如果函数需要它,会自动作为最后一个参数传递给函数。可用于获取关于交易的信息,如发送者/摘要,或查询系统状态 - 当前纪元、时间戳或生成唯一 ID。
- 数学库 (Math) - 有用的数学函数。
- BCS - 可用于将结构体作为字节数组(vector
)传递,因为 Sui 默认不允许将自定义结构体作为参数传递。接收函数需要从给定的字节向量中手动逐个提取值。 - 加密函数 - 用于验证签名消息(使用不同的方案)或零知识证明。
- 类型名 (Type Name) - 用于在 Move 中对类型(结构体)进行字符串检查。
- Url 和 Versioned - 有用的库和类型,用于明确表示特殊值。