复习:查找一个元素
本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 41 课,共 66 课。
挑战
简单你会收到两个输入。第一个输入是用逗号分隔的数字列表(例如,10,20,30,40),第二个输入是要搜索的目标数字。将用逗号分隔的数字解析为一个向量,然后搜索目标数字。使用 .iter().position() 查找目标数字的索引,该方法会返回一个 Option<usize>。使用 match 处理这两种情况,并打印相应的消息。
要求:
- 读取第一个输入(用逗号分隔的数字),并去除空白
- 按逗号拆分输入,并将每部分解析为
i32,以创建一个向量 - 读取第二个输入(目标数字),并去除空白
- 将目标数字解析为
i32 - 使用
.iter().position(|&x| x == target)在向量中搜索目标数字 - 使用
match表达式处理.position()返回的Option - 在
Some(index)分支中,打印:Found at index [index] - 在
None分支中,打印:Not found
输入:
- 第一行:用逗号分隔的数字(例如,
10,20,30,40) - 第二行:要搜索的目标数字(例如,
30)
输出:
- 如果找到目标数字:
Found at index [index] - 如果没有找到目标数字:
Not found
亲手试试
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// 读取用逗号分隔的数字
let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
// 读取目标数字
let target_input = lines.next().unwrap().unwrap().trim().to_string();
// 将用逗号分隔的数字解析为向量
let numbers: Vec<i32> = numbers_input
.split(',')
.map(|s| s.trim().parse().unwrap())
.collect();
// 解析目标数字
let target: i32 = target_input.parse().unwrap();
// TODO: 在下方编写你的代码
// 使用 .iter().position() 查找目标,并用 match 处理结果
}逻辑与流程中的所有课
自己练习: Rust 在线编译器