Sui区块链上的数据可以组织成结构体。结构体可以被理解为一组相关的字段,每个都有其自身的类型,如数字、布尔值和向量。结构体是Move中的一个基础概念。

module modules::my_module_03 {
    use sui::object::UID;

    // 所有作为对象核心的结构体都需要具有 `key` 属性,并且需要一个类型为 UID 的 id 字段。
    public struct MyObject has key {
        id: UID,
        color: u64,
    }

}
  • 在以上的例子中,我们定义了一个简单的结构体 MyObject,它有两个字段 idcolor
  • 每个结构体可以定义为具有“能力” (abilities) - keystoredropcopy。稍后我们会详细解释这些能力的含义。

Move类型

  • Move支持多种不同类型:

  • 无符号整数:u8u16u32u64u128u256 这些不同类型的整数可以存储不同的最大值。例如,u8可以存储最大值为2^8 - 0-255,

  • u256可以存储最大值为2^256 - 1

布尔类型: bool

布尔类型就是真true和假false

address

地址: address。地址是区块链中的核心构造,用以代表用户身份。用户可以在链下使用仅他们拥有的密钥生成地址,并用它们来签署交易。这证明了交易确实来自用户,而不是伪造的。

string

字符串: String

向量

向量: Vector。例如,u64数组可以写作 vector

struct

自定义结构类型: 比如在前面的例子中通过 use sui::object::UID 导入的 UID。