MST

星途 面试题库

面试题:Rust中如何自定义一个简单的迭代器并实现Iterator特型

请编写一个Rust程序,自定义一个结构体,使其能够作为迭代器使用,并且实现Iterator特型,每次迭代返回结构体中存储的数组元素,数组元素类型为i32。要求展示结构体定义、Iterator特型的实现代码以及如何使用这个自定义迭代器。
30.2万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义结构体
struct MyIter {
    data: Vec<i32>,
    index: usize,
}

// 实现Iterator特型
impl Iterator for MyIter {
    type Item = i32;

    fn next(&mut self) -> Option<Self::Item> {
        if self.index < self.data.len() {
            let item = self.data[self.index];
            self.index += 1;
            Some(item)
        } else {
            None
        }
    }
}

fn main() {
    // 创建结构体实例并作为迭代器使用
    let my_iter = MyIter {
        data: vec![1, 2, 3, 4, 5],
        index: 0,
    };

    for num in my_iter {
        println!("{}", num);
    }
}