You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Rust中将i32类型向量转换为MyEnum枚举类型向量的方法

实现convert函数的解决方案

你可以利用Rust的迭代器功能,通过map将每个i32元素包装为MyEnum::Int变体,再用collect收集成目标向量,代码实现如下:

pub enum MyEnum {
    Int(i32),
    Float(f32)
}

fn convert(my_vec: Vec<i32>) -> Vec<MyEnum> {
    my_vec.into_iter().map(|num| MyEnum::Int(num)).collect()
}

代码说明

  • into_iter():获取向量的所有权迭代器,避免不必要的拷贝
  • map(|num| MyEnum::Int(num)):将每个i32元素转换为MyEnum::Int枚举变体
  • collect():自动将迭代器转换为Vec<MyEnum>类型(函数返回值已明确指定,Rust可完成类型推导)

如果你偏好更直观的循环写法,也可以手动遍历并构建结果向量:

fn convert(my_vec: Vec<i32>) -> Vec<MyEnum> {
    let mut result = Vec::new();
    for num in my_vec {
        result.push(MyEnum::Int(num));
    }
    result
}

内容的提问来源于stack exchange,提问作者crispy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 13:54:22