MST

星途 面试题库

面试题:Rust枚举变体模式匹配中的复杂逻辑处理

定义一个Rust枚举 `enum Shape { Circle(f64), Rectangle(f64, f64), Triangle(f64, f64) }`,编写一个函数 `fn calculate_area(s: Shape) -> f64`,使用模式匹配分别计算并返回圆形(面积公式:`pi * r * r`)、矩形(面积公式:`长 * 宽`)和三角形(面积公式:`0.5 * 底 * 高`)的面积。`pi` 可以使用 `std::f64::consts::PI`。
11.8万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
enum Shape {
    Circle(f64),
    Rectangle(f64, f64),
    Triangle(f64, f64)
}

fn calculate_area(s: Shape) -> f64 {
    match s {
        Shape::Circle(r) => std::f64::consts::PI * r * r,
        Shape::Rectangle(length, width) => length * width,
        Shape::Triangle(base, height) => 0.5 * base * height
    }
}