Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Rust中的函数返回函数?_Rust - Fatal编程技术网

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

如何从Rust中的函数返回函数?,rust,Rust,我目前拥有和尝试过的: fn locate_func() -> fn() -> bool { func_exit() } 上面的代码显示了我正在努力完成的任务。我想以指针的形式返回func_exit,指向任何变量绑定可能决定它需要的特定代码,以及一旦检索到函数,我想运行它。但我确信我能自己找出跑步的部分 &func_exit() 我已经尝试过了,但您肯定知道,它只是对函数求值,然后返回指向堆栈上布尔值的指针 *&func_exit() &*func

我目前拥有和尝试过的:

fn locate_func() -> fn() -> bool {
    func_exit()
}
上面的代码显示了我正在努力完成的任务。我想以指针的形式返回
func_exit
,指向任何变量绑定可能决定它需要的特定代码,以及一旦检索到函数,我想运行它。但我确信我能自己找出跑步的部分

&func_exit()
我已经尝试过了,但您肯定知道,它只是对函数求值,然后返回指向堆栈上布尔值的指针

*&func_exit()
&*func_exit() // or
我相信我在铁锈书中看到过类似的东西,但我在这个例子中尝试过这两种组合,也尝试过用括号以各种不同的方式做同样的事情,但仍然是先计算函数,然后指向计算过的布尔值。

括号的意思是“使用这些参数调用函数”。不要这样做:

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

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

fn main() {
    let f = locate_func();
    f();
}
相关但不同: