面试题答案
一键面试// 定义Meters结构体
struct Meters {
value: f64,
}
// 定义Centimeters结构体
struct Centimeters {
value: f64,
}
// 定义Add trait,用于实现加法操作
use std::ops::Add;
impl Add for Meters {
type Output = Centimeters;
fn add(self, other: Centimeters) -> Centimeters {
let total_cm = self.value * 100.0 + other.value;
Centimeters { value: total_cm }
}
}
impl Add for Centimeters {
type Output = Centimeters;
fn add(self, other: Meters) -> Centimeters {
let total_cm = self.value + other.value * 100.0;
Centimeters { value: total_cm }
}
}
你可以使用以下方式测试这个代码:
fn main() {
let meters = Meters { value: 2.0 };
let centimeters = Centimeters { value: 50.0 };
let result = meters + centimeters;
println!("The result is: {} cm", result.value);
let result2 = centimeters + meters;
println!("The result2 is: {} cm", result2.value);
}