在本章中,我们将介绍Cairo中的struct
(结构体)。
结构体
结构体是一种自定义类型,它允许您将多个相关值组合成一个有意义的组,并为其分配一个名称。
Storage struct
在第三章中,我们使用了一个特殊的结构体 Storage
来声明存储变量:
自定义结构体
我们可以在您的合约中使用struct
关键字定义自定义struct
。下面我们定义了一个Student
结构体:
#[derive(Copy, Drop, Serde)]
是一个宏,它为struct
添加更多功能。我们需要Copy
和Drop
宏以自动生成用于复制和删除结构体实例的代码(在函数中操作它们),以及Serde
宏将结构体用作函数的返回类型。
创建结构体
您可以使用以下语法在函数中创建struct
:
读取值
您可以使用点表示法从struct
中读取特定值:
结构体数组
struct
可以用作数组中的元素。
结构体作为返回类型
您可以将struct
用作函数的返回类型。为此,您需要Serde
宏。Serde代表序列化和反序列化数据结构。
总结
在本章中,我们介绍了Cairo中的结构体,包括如何定义、创建、从中读取值以及将它们作为函数的返回类型。