MST

星途 面试题库

面试题:Rust中trait关联类型在简单数据处理场景的应用

假设你正在开发一个处理不同类型集合数据的程序,有一个`CollectionProcessor` trait,它有一个关联类型`Item`用于表示集合中的元素类型。请实现这个trait,并且包含一个方法`process`,它能遍历集合并对每个元素进行平方操作(假设元素类型支持乘法操作),然后返回处理后的集合。以`Vec`为例给出实现代码。
22.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
trait CollectionProcessor {
    type Item;
    fn process(&self) -> Vec<Self::Item>;
}

impl CollectionProcessor for Vec<i32> {
    type Item = i32;
    fn process(&self) -> Vec<Self::Item> {
        self.iter().map(|&x| x * x).collect()
    }
}