Struct是structure的缩写,类似于JavaScript中的对象。您可以使用Sway中的struct
关键字定义结构,并在大括号内定义结构的字段。
我们程序的核心是能够列出、出售和获取items
。
让我们将Item类型定义如下所示写入您的main.sw
文件:
struct Item {
id: u64,
price: u64,
owner: Identity,
metadata: str[20],
total_bought: u64,
}
item结构体将包含一个ID、价格、所有者的身份、表示物品的链外数据的URL或标识符(例如其描述和照片),以及一个“总购买”计数器,用于跟踪总购买数量。
Item
结构体使用了三种类型:u64
、str
和Identity
。
u64
:64位无符号整数。
在Sway中,有四种本机数值类型:
u8
:8位无符号整数。 u16
:16位无符号整数。 u32
:32位无符号整数。 u64
:64位无符号整数。 u256
:256位无符号整数。 无符号整数表示没有+
或-
符号,使值始终为正。u64
是Sway中用于数字的默认类型。
在JavaScript中,有两种类型的整数:number
和BigInt
。这些类型之间的主要区别是BigInt
可以存储更大的值。类似地,Sway中的每种数值类型都有其可以存储的最大值。
String Array
:字符串是Sway中的内置原始类型。方括号中的数字表示字符串的大小。
Identity
:一种枚举类型,表示用户的Address
或ContractId
。在Sway中,合同和EOA(Externally Owned Account)是明确定义的。它们都是对b256
的类型安全包装。