如何从Rust中的函数返回函数?

D. *_*aro 2 rust

我目前拥有并尝试过的内容:

fn locate_func() -> fn() -> bool {
    func_exit()
}
Run Code Online (Sandbox Code Playgroud)

上面的代码显示了我想要完成的任务.我希望以func_exit我认为是指针的形式返回,无论变量绑定可能决定它需要特定代码,以及一旦我检索了我想要运行它的函数.但我确信我可以自己弄清楚跑步部分.

&func_exit()
Run Code Online (Sandbox Code Playgroud)

我已经尝试了,但你肯定知道只是简单地评估函数然后返回一个指向堆栈上布尔值的指针.

*&func_exit()
&*func_exit() // or
Run Code Online (Sandbox Code Playgroud)

我相信在某些时候我在Rust书中看到了类似的东西,但是我已经尝试过这种情况下的两种组合,并尝试用所有不同的方式用括号做同样的事情,但是仍然首先评估函数,然后指向评估的布尔值.

She*_*ter 6

括号表示"使用这些参数调用函数".不要这样做:

fn func_exit() -> bool {
    println!("hi");
    true
}

fn locate_func() -> fn() -> bool {
    func_exit
}

fn main() {
    let f = locate_func();
    f();
}
Run Code Online (Sandbox Code Playgroud)

相关但不同:从函数返回闭包.