MST

星途 面试题库

面试题:Rust枚举变体模式匹配的复杂逻辑实现

假设有一个枚举`MathOperation`,包含`Add`、`Subtract`、`Multiply`和`Divide`四个变体,每个变体分别关联两个`f64`类型的值。编写一个函数`calculate`,它接受一个`MathOperation`实例,使用模式匹配对关联的值进行相应的数学运算并返回结果。注意处理除法中除数为零的情况,返回`None`,其他情况返回`Some(result)`。
38.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
enum MathOperation {
    Add(f64, f64),
    Subtract(f64, f64),
    Multiply(f64, f64),
    Divide(f64, f64),
}

fn calculate(operation: MathOperation) -> Option<f64> {
    match operation {
        MathOperation::Add(a, b) => Some(a + b),
        MathOperation::Subtract(a, b) => Some(a - b),
        MathOperation::Multiply(a, b) => Some(a * b),
        MathOperation::Divide(a, b) => if b != 0.0 { Some(a / b) } else { None },
    }
}