MST
星途 面试题库

面试题:Rust函数指针作为参数传递与泛型的结合

编写一个通用的Rust函数 `apply_operation`,它接受一个泛型类型 `T` 和两个 `T` 类型的参数,以及一个函数指针,该函数指针接受两个 `T` 类型参数并返回 `T` 类型结果。要求函数支持对 `i32`、`f64` 等基本数字类型进行操作。请实现该函数,并在主函数中展示对 `i32` 和 `f64` 类型的调用示例。
46.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn apply_operation<T, F>(a: T, b: T, op: F) -> T
where
    F: Fn(T, T) -> T,
    T: Copy,
{
    op(a, b)
}

fn main() {
    let add_i32 = |a: i32, b: i32| a + b;
    let result_i32 = apply_operation(2i32, 3i32, add_i32);
    println!("i32 result: {}", result_i32);

    let add_f64 = |a: f64, b: f64| a + b;
    let result_f64 = apply_operation(2.0f64, 3.0f64, add_f64);
    println!("f64 result: {}", result_f64);
}