Rust语言编程实例100题-060
题目:Rust高阶函数练习。高阶函数是指以函数为参数或者返回值的函数,是函数式编程语言最基础的特性。函数是一种类型,函数类型的变量可以像其他类型的变量一样使用,既可以被直接调用执行,也可以作为其他函数的参数返回值。实现这一切的基础是函数指针。
要求:写一个函数,其返回值是函数类型。
程序分析:函数作为返回值时,建议使用type关键字指定别名。
知识点:高阶函数
参考程序代码:
type CalcFunction = fn(a: i32, b: i32) -> i32;
fn mul(a: i32, b: i32) -> i32 {
return a * b;
}
fn add(a: i32, b: i32) -> i32 {
return a + b;
}
fn match_math(op: &str) -> CalcFunction {
return if op == "add" {
add
} else {
mul
};
}
fn main() {
let a = 3;
let b = 4;
let add_result = match_math("add")(a, b);
let mul_result = match_math("mul")(a, b);
dbg!(add_result);
dbg!(mul_result);
}
程序执行结果:
add_result = 7
mul_result = 12