Come si inseriscono le funzioni (oi puntatori di funzione) in un array a scopo di test?Come posso memorizzare i puntatori di funzione in un array?
fn foo() -> isize { 1 }
fn bar() -> isize { 2 }
fn main() {
let functions = vec![foo, bar];
println!("foo() = {}, bar() = {}", functions[0](), functions[1]());
}
Questo codice nel Rust playground
Questo è il codice di errore ottengo:
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 è trattare le mie funzioni (valori) come tipi diversi, pur avendo le stesse firme, che ho trovare sorprendente.
Sì, questo è un duplicato. –
Se è un duplicato, indica di che si tratta di un duplicato, quindi possiamo gestirlo! Questa domanda mi ha aiutato molto, al contrario di altre (simili) domande con risposte accettate sbagliate o inutili. –