如何定义有返回值的函数指针?

问题描述 投票:0回答:1

我想创建一个回调函数。下面的代码不起作用,但它显示了我想要做的事情。这是我在 Rust Playground 中损坏的程序的链接

fn use_callback(callback: fn()) -> i32 {
    callback()
}

fn callback() -> i32 {
    2
}

fn main() {
    println!("Result: {:?}", use_callback(callback));
}

预期结果应该是

Result: 2

rust parameters function-pointers
1个回答
6
投票

您只需将

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));
}

铁锈游乐场

© www.soinside.com 2019 - 2024. All rights reserved.