代码点读机 / Rust / union

union Rust · 关键字

定义一种 C 风格联合体,所有字段共享同一块内存,同一时间只能安全地读最近一次写入的字段。

怎么用

union 名字 { 字段1: 类型1, 字段2: 类型2 }

小例子

union 数 {
    整: i32,
    浮: f32,
}
let mut u = 数 { 整: 1 };
unsafe { u.浮 = 3.14; }

编译结果

整和浮共用 4 字节内存

提醒:读写 union 字段需要 unsafe,因为编译器无法保证当前生效的是哪个字段

官方文档:https://doc.rust-lang.org/reference/items/unions.html

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条