Option

我们已经了解了 Option<T> 的一些用法。它可以存储“T”类型的值,或者不存储任何值。例如,‘String::find’ 会返回 Option<usize>

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • Option is widely used, not just in the standard library.
  • unwrap 会返回 Option 或 panic 中的值。expect 方法与此类似,但其使用错误消息。
    • 出现 None 时您或许会恐慌,但不能 “无意中”忘记检查是否为 None 的情况。
    • 在草拟阶段的编程中,频繁使用 unwrap/expect 进行处理十分常见,但在正式版代码时,通常以更为妥当的方式处理 None 的情况。
  • 小众优化意味着 Option<T> 在内存中的大小通常与 T 相同。