面试题答案
一键面试use std::fmt::Display;
// 定义特征
trait MathOp<T, U> {
fn operate(&self, a: T, b: U) -> impl Display
where
T: Display + std::ops::Add<U, Output = T>,
U: Display;
}
// 定义结构体
struct Adder;
// 实现特征
impl MathOp<i32, i32> for Adder {
fn operate(&self, a: i32, b: i32) -> impl Display {
a + b
}
}
struct FloatAdder;
impl MathOp<f64, f64> for FloatAdder {
fn operate(&self, a: f64, b: f64) -> impl Display {
a + b
}
}