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