3.3 `Option`
03-
Option — Comprehensive Rust1分钟内可阅读完
译文 · 基于 Comprehensive Rust
原文链接: https://google.github.io/comprehensive-rust/std-types/option.html
3.3 Option
我们已经见过一些 Option<T> 的用法。它要么存储类型为 T 的值,要么什么都不存。例如,
String::find
返回 Option<usize>。
| |
Option使用广泛,不只在标准库中。
unwrap会返回Option中的值,否则 panic。expect类似,但可带错误信息。
- 你可以在
None时 panic,但不能「不小心」忘记检查None。- 拼凑原型时到处
unwrap/expect很常见,但生产代码通常会以更妥善的方式处理None。「niche 优化」意味着:若存在某种不是
T的有效值的表示,则Option<T>在内存中通常与T同大小。例如,引用不能为 NULL,因此Option<&T>自动用 NULL 表示None变体,从而可以与&T占用相同内存。