相关疑难解决方法(0)

如何在数组中存储函数指针?

为了测试目的,你如何将函数(或函数指针)粘贴到数组中?

fn foo() -> isize { 1 }
fn bar() -> isize { 2 }

fn main() {
    let functions = vec![foo, bar];
    println!("foo() = {}, bar() = {}", functions[0](), functions[1]());
}
Run Code Online (Sandbox Code Playgroud)

这个代码在Rust操场上

这是我得到的错误代码:

error: mismatched types:
 expected `fn() -> isize {foo}`,
    found `fn() -> isize {bar}`
(expected fn item,
    found a different fn item) [E0308]

    let functions = vec![foo, bar];
                              ^~~
Run Code Online (Sandbox Code Playgroud)

Rust将我的函数(值)视为不同类型,尽管具有相同的签名,我觉得这很令人惊讶.

arrays function-pointers rust

12
推荐指数
1
解决办法
2792
查看次数

标签 统计

arrays ×1

function-pointers ×1

rust ×1