Rust中枚举的Niche优化原理是什么?以Option<bool>为例解析
Option 的内存分配机制
你的理解完全正确,Rust 对 Option<bool> 的内存分配就是利用了 bool 仅占1字节且只有两个有效取值的特性,把第三个状态(None)塞进了同一个字节中:
Some(false)对应二进制值00000000Some(true)对应二进制值00000001None使用上述两个值之外的任意字节表示,最常见的是00000010(十进制2)
这种实现属于 Rust 空指针优化的变种——因为 bool 的取值没有占满1字节的所有可能,所以剩余的取值就被用来标记 None 状态,无需额外占用内存空间,这也是为什么 Option<bool> 和 bool 的大小均为1字节。
内容的提问来源于stack exchange,提问作者kenta_desu
相关产品推荐
相关产品推荐

