Sui区块链上的数据可以组织成结构体。结构体可以被理解为一组相关的字段,每个都有其自身的类型,如数字、布尔值和向量。结构体是Move中的一个基础概念。
module modules::my_module_03 {
use sui::object::UID;
// 所有作为对象核心的结构体都需要具有 `key` 属性,并且需要一个类型为 UID 的 id 字段。
public struct MyObject has key {
id: UID,
color: u64,
}
}
- 在以上的例子中,我们定义了一个简单的结构体
MyObject
,它有两个字段id
和color
。 - 每个结构体可以定义为具有“能力” (abilities) -
key
、store
、drop
、copy
。稍后我们会详细解释这些能力的含义。
Move类型
-
Move支持多种不同类型:
-
无符号整数:
u8
、u16
、u32
、u64
、u128
、u256
这些不同类型的整数可以存储不同的最大值。例如,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。