MST
星途 面试题库

面试题:Rust结构体与Option枚举在复杂业务逻辑中的交互应用

假设有一个电商系统,定义一个结构体`Product`,包含`product_id`(整数类型)、`name`(字符串类型)和`price`(浮点数类型)字段。再定义一个`Option<Vec<Product>>`类型的变量,表示可能存在的产品列表。编写一个函数,接受这个`Option<Vec<Product>>`,如果列表存在,计算并返回所有产品的总价格;如果列表不存在,返回`None`。同时处理好可能出现的借用规则问题。
28.8万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义Product结构体
struct Product {
    product_id: i32,
    name: String,
    price: f64,
}

// 定义函数计算产品总价格
fn calculate_total_price(products: Option<Vec<Product>>) -> Option<f64> {
    products.map(|vec| {
        vec.into_iter()
          .map(|product| product.price)
          .sum()
    })
}