我想创建一个回调函数。下面的代码不起作用,但它显示了我想要做的事情。这是我在 Rust Playground 中损坏的程序的链接。
fn use_callback(callback: fn()) -> i32 {
callback()
}
fn callback() -> i32 {
2
}
fn main() {
println!("Result: {:?}", use_callback(callback));
}
预期结果应该是
Result: 2
。
您只需将
use_callback
函数中的回调类型更改为返回 i32
的函数指针即可。
fn use_callback(callback: fn() -> i32) -> i32 {
// ^^^^^^ here
return callback();
}
fn callback() -> i32 {
return 2;
}
fn main() {
println!("Result: {:?}", use_callback(callback));
}