渐进式编程课
Rust 目录
第 19 课2026.09.23

在借用的分数切片中找出第一个目标分数的位置。

第 19 课:查找切片中的元素位置

  • 日期:2026-09-23
  • 课程序号:第 19 课
  • 知识点:Iterator::position

用途或适用场景

在借用的分数切片中找出第一个目标分数的位置。

核心概念

iter().position(...) 返回 Option<usize>;找到时是从 0 开始的索引,未找到时是 None,无需先复制切片。

最小代码或操作示例

rust
fn first_position(values: &[i32], target: i32) -> Option<usize> {
    values.iter().position(|value| *value == target)
}

fn main() {
    let scores = [3, 8, 5];
    assert_eq!(first_position(&scores, 8), Some(1));
    assert_eq!(first_position(&scores, 9), None);
}

3~5 分钟练习

给 scores 末尾再加一个 8,观察返回位置。

参考答案

仍返回 Some(1);position 找到第一个匹配项就停止。

与上一课的联系

沿用第 18 课的整数切片、目标值及 Option 的有值/无值语义;上课的 find 返回匹配值,本课只改用 position 返回首次匹配位置;下一课可查找最后一次匹配的位置。

时效校验

时效校验:2026-09-24(已重新打开 Rust 1.98.1 标准库 Iterator::position 文档;该方法自 1.0.0 可用,未见废弃标记)。

官方参考