Rust中Option<T>相比空指针的开销有多大?
大家好!我刚开始学习Rust,从C++转过来。在C++中,我习惯用nullptr或NULL表示值的缺失。而在Rust中,使用Option,我一直在纠结:这到底有多昂贵?毕竟在C++中,空指针就是0,没有任何额外开销。
例如,我有这样一个结构体:
```rust
struct Node {
value: i32,
left: Option>,
right: Option>,
}
```
如果我将`left`设为`None`,Rust必须在某处存储一个标志,表明这是None。那么每个Option占用的内存是否比裸指针更多?还是编译器会对此进行优化?
我尝试检查了大小:
```rust
use std::mem::size_of;
fn main() {
println!("{}", size_of::