This question already has an answer here:
How do you stick functions (or function pointers) into an array for testing purposes?
fn foo() -> isize { 1 } fn bar() -> isize { 2 } fn main() { let functions = vec![foo, bar]; println!("foo() = {}, bar() = {}", functions[0](), functions[1]()); }
This code in the Rust playground
This is the error code I get:
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]; ^~~
Rust is treating my functions (values) as different types despite having the same signatures, which I find surprising.