渐进式编程课
Rust 目录
第 23 课2026.09.30

把上一课组合出的索引和值转换成可显示文本。

第 23 课:转换组合后的匹配结果

  • 日期:2026-09-30
  • 课程序号:第 23 课
  • 知识点:Option::map

用途或适用场景

把上一课组合出的索引和值转换成可显示文本。

核心概念

map 只在 Some 时执行闭包,None 会原样传播。

最小代码或操作示例

rust
let scores = [3, 8, 5, 8];
let result = scores.iter().rposition(|&x| x == 8)
    .and_then(|i| scores.get(i).map(|v| (i, v)))
    .map(|(i, v)| format!("{i}:{v}"));
assert_eq!(result.as_deref(), Some("3:8"));

3~5 分钟练习

把目标改为 9,断言结果。

参考答案

找不到索引,后续闭包不执行,结果为 None。

与上一课的联系

第 22 课组合了位置和值;本课只新增 map 转换组合结果;下一课可用 unwrap_or 提供缺失文案。

时效校验

时效校验:2026-09-30(Rust 1.98.1;Option::map 自 1.0.0 可用,未见废弃标记。)

官方参考