MST

星途 面试题库

面试题:Rust枚举变体模式匹配之复杂类型处理

定义一个枚举 `enum Shape { Circle(f64), Rectangle(f64, f64), Triangle(f64, f64) }`,分别代表圆形(半径)、矩形(长和宽)、三角形(底和高)。编写一个函数 `fn calculate_area(s: Shape) -> f64`,使用模式匹配计算并返回每种形状的面积。圆周率 `π` 可近似取 `3.14`。
11.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

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

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