rust函数作为参数
时间: 2024-04-08 22:24:18 浏览: 240
在Rust中,函数可以作为参数传递给其他函数。这种功能使得编写高阶函数变得更加方便和灵活。要将函数作为参数传递,可以使用函数指针或闭包。
使用函数指针时,可以定义一个函数指针类型,并在函数参数中使用它。例如:
```rust
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn math_operation(operation: fn(i32, i32) -> i32, a: i32, b: i32) -> i32 {
operation(a, b)
}
fn main() {
let result = math_operation(add, 3, 5);
println!("Result: {}", result);
}
```
上述代码中,`math_operation` 函数接受一个类型为 `fn(i32, i32) -> i32` 的函数指针作为参数,并调用该函数指针执行特定的数学操作。
另一种方式是使用闭包。闭包是一种可以捕获外部变量的匿名函数。可以将闭包直接作为函数参数传递。例如:
```rust
fn math_operation<F>(operation: F, a: i32, b: i32) -> i32
where
F: Fn(i32, i32) -> i32,
{
operation(a, b)
}
fn main() {
let result = math_operation(|a, b| a + b, 3, 5);
println!("Result: {}", result);
}
```
上述代码中,`math_operation` 函数通过泛型参数 `F` 接受一个闭包作为参数,并调用该闭包执行数学操作。
阅读全文