← 学习中心

Option 与空值思维

用 Some/None 替代空指针

本节你将能

正确创建与解包 Option,并选择 map/and_then/unwrap_or 等组合子。

直觉模型

没有 null:要么是 Some(值),要么是 None。编译器逼你回答「没有时怎么办」。

核心要点

  • unwrap/expect 仅用于确信有值或原型阶段
  • 生产代码优先 unwrap_or、ok_or、?(在返回 Result 的函数中)
  • map 变换内部值;and_then 用于可能再失败的链式操作
fn first_char(s: &str) -> Option { s.chars().next() }
let c = first_char("hi").unwrap_or('?');

常见误区

到处 unwrap()——等于把空值错误推迟到运行时崩溃。

动手

写函数:从 HashMap 取配置,缺失时返回默认值。

互动

测验:选最合适的 Option API。

本节小结

下一节用 Result 处理「可能失败」而非「可能为空」。

Option 与空值思维 - 生命科学与前沿科技学习平台 | 必学必会