MST

星途 面试题库

面试题:Rust函数指针作为参数传递

编写一个Rust程序,包含一个高阶函数`process_numbers`,它接受一个函数指针作为参数。该函数指针指向的函数应接受两个`f64`类型参数并返回一个`f64`类型结果。`process_numbers`函数本身接受两个`f64`类型的数字,并使用传入的函数指针来处理这两个数字,最后返回处理结果。请实现至少两个不同的函数,用于作为`process_numbers`函数的参数,并展示如何调用`process_numbers`函数。
27.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义第一个处理函数
fn add_numbers(a: f64, b: f64) -> f64 {
    a + b
}

// 定义第二个处理函数
fn multiply_numbers(a: f64, b: f64) -> f64 {
    a * b
}

// 高阶函数,接受一个函数指针作为参数
fn process_numbers(func: fn(f64, f64) -> f64, a: f64, b: f64) -> f64 {
    func(a, b)
}

fn main() {
    let num1 = 5.0;
    let num2 = 3.0;

    // 使用add_numbers函数调用process_numbers
    let result_add = process_numbers(add_numbers, num1, num2);
    println!("Addition result: {}", result_add);

    // 使用multiply_numbers函数调用process_numbers
    let result_multiply = process_numbers(multiply_numbers, num1, num2);
    println!("Multiplication result: {}", result_multiply);
}