Rust-reference/types/union

来自菜鸟教程
跳转至:导航、​搜索

Union types

联合体类型

union.md

commit: 0c8df59ff60f341ff0cf4d766a7c442b4a5837a4
本章译文最后维护日期:2020-11-14

联合体类型是一种标称型(nominal)的、异构的、类似C语言里的 union 的类型,具体的类型名称由联合体(union)程序项的名称表示。

联合体没有“活跃字段(active field)”的概念。相反,每次对联合体的访问都将联合体的部分存储内容转换为被访问字段的类型。由于转换可能会导致意外或未定义行为,所以读取联合体字段,或写入未实现 Copy 的联合体字段的操作都需要放在 unsafe块内进行。有关详细信息,请参阅程序项文档。

默认情况下,联合体(union)的内存布局是未定义的,但是可以使用 #[repr(...)]属性来固定为某一类型布局。