结构体类型
struct
*类型* 是其他类型的异构乘积,称为该类型的*字段*。1
可以使用结构体表达式构造struct
的新实例。
默认情况下,struct
的内存布局是未定义的,以允许编译器进行诸如字段重排序之类的优化,但可以使用repr
属性来固定。在任何情况下,字段都可以在相应的结构体*表达式*中以任何顺序给出;生成的struct
值将始终具有相同的内存布局。
struct
的字段可以使用可见性修饰符进行限定,以允许在模块外部访问结构体中的数据。
*元组结构体*类型与结构体类型非常相似,只是字段是匿名的。
*单元结构体*类型与结构体类型类似,只是它没有字段。由相关的结构体表达式构造的唯一值是该类型所拥有的唯一值。
1
struct
类型类似于 C 中的 struct
类型,ML 家族的 *记录* 类型,或 Lisp 家族的 *struct* 类型。