面试题答案
一键面试use std::f64::consts::PI;
use std::fmt;
use std::ops::Mul;
use std::cmp::PartialOrd;
use std::convert::TryInto;
// 定义Shape枚举类型
enum Shape {
Circle(f64),
Rectangle(f64, f64),
Triangle(f64, f64, f64),
}
// 实现面积计算函数
fn calculate_area(shape: Shape) -> f64 {
match shape {
Shape::Circle(radius) => PI * radius * radius,
Shape::Rectangle(length, width) => length * width,
Shape::Triangle(a, b, c) => {
let s = (a + b + c) / 2.0;
(s * (s - a) * (s - b) * (s - c)).sqrt()
}
}
}
你可以使用以下方式调用这个函数:
fn main() {
let circle = Shape::Circle(5.0);
let rectangle = Shape::Rectangle(4.0, 6.0);
let triangle = Shape::Triangle(3.0, 4.0, 5.0);
println!("Circle area: {}", calculate_area(circle));
println!("Rectangle area: {}", calculate_area(rectangle));
println!("Triangle area: {}", calculate_area(triangle));
}