在 Sway 中,struct
的作用类似于 TypeScript 中的 Object
。它定义了一个自定义数据结构,具有指定的属性名称和类型。Sway 结构体中的属性名称和类型必须与相应的 TypeScript 定义相匹配。
以下是 Sway 中 struct
的示例:
pub struct EmployeeData {
name: str[8],
age: u8,
salary: u64,
idHash: b256,
ratings: [u8; 3],
isActive: bool,
}
这是 TypeScript 中表示的等效结构:
type EmployeeDataStruct = {
name: string;
age: number;
salary: number;
idHash: string;
ratings: number[];
isActive: boolean;
};
const data: EmployeeDataStruct = {
name: 'John Doe',
age: 30,
salary: 100_000,
idHash: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
ratings: [4, 5, 5],
isActive: true,
};
请注意,TypeScript 不支持 u8
和 u64
类型。相反,使用 number
类型来表示它们。
此外,TypeScript 不支持指定字符串长度,因此对于 name
,只需使用 string
即可。
类似地,由于 SDK 上的类型 b256
只是一个十六进制字符串,因此我们也使用 string
。