Jak wklejasz funkcje (lub wskaźniki funkcji) do tablicy w celach testowych?Jak mogę przechowywać wskaźniki funkcji w tablicy?
fn foo() -> isize { 1 }
fn bar() -> isize { 2 }
fn main() {
let functions = vec![foo, bar];
println!("foo() = {}, bar() = {}", functions[0](), functions[1]());
}
Ten kod w Rust playground
Jest to kod błędu pojawia się:
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 traktuje swoich funkcji (wartości), jak różne rodzaje mimo że te same podpisy, które ja znaleźć zaskakujące.
Tak, to jest duplikatem. –
Jeśli jest to duplikat, wskaż jego duplikat, abyśmy mogli nim zarządzać! To pytanie pomogło mi bardzo, w przeciwieństwie do innych (podobnych) pytań z błędnymi lub nieprzydatnymi, zaakceptowanymi odpowiedziami. –