第 18 课2026.09.22
从借用的分数切片中找到第一个目标值,同时保留“找不到”的情况。
第 18 课:查找切片中的目标值
- 日期:2026-09-22
- 课程序号:第 18 课
- 知识点:
Iterator::find
用途或适用场景
从借用的分数切片中找到第一个目标值,同时保留“找不到”的情况。
核心概念
find 遇到第一个满足条件的元素就返回 Some,否则返回 None;沿用之前的 copied(),让结果仍是 Option<i32>。
最小代码或操作示例
rust
fn first_value(values: &[i32], target: i32) -> Option<i32> {
values.iter().copied().find(|value| *value == target)
}
fn main() {
let scores = [3, 8, 5];
assert_eq!(first_value(&scores, 8), Some(8));
assert_eq!(first_value(&scores, 9), None);
}3~5 分钟练习
在 scores 末尾再加一个 8,确认结果仍是 Some(8)。
参考答案
把数组改为 [3, 8, 5, 8] 后,两个断言仍成立;find 在首个匹配处停止。
与上一课的联系
沿用第 17 课的整数切片和 Option 的有值/无值处理,并复用第 16 课的 copied();本课只新增 find 获取匹配的值;下一课可在同一切片中寻找匹配项的位置。
时效校验
时效校验:2026-09-24(已打开 Rust 1.98.1 标准库 Iterator::find 文档,核对签名、返回值和首次匹配语义;未见废弃标记)。