面试题答案
一键面试// 定义特征
trait MathOperation {
fn calculate(&self, a: i32, b: i32) -> i32;
}
// 定义结构体并实现特征
struct Addition;
impl MathOperation for Addition {
fn calculate(&self, a: i32, b: i32) -> i32 {
a + b
}
}
struct Multiplication;
impl MathOperation for Multiplication {
fn calculate(&self, a: i32, b: i32) -> i32 {
a * b
}
}
// 定义泛型函数
fn perform_operation<T: MathOperation>(operation: T, a: i32, b: i32) -> i32 {
operation.calculate(a, b)
}