함수 (또는 함수 포인터)를 테스트 용으로 배열에 고정하는 방법은 무엇입니까?어떻게 함수 포인터를 배열에 저장할 수 있습니까?
fn foo() -> isize { 1 }
fn bar() -> isize { 2 }
fn main() {
let functions = vec![foo, bar];
println!("foo() = {}, bar() = {}", functions[0](), functions[1]());
}
이에이 코드는 오류 코드 내가 얻을 수 있습니다 :
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];
^~~
녹 같은 서명을 갖는에도 불구하고 내 기능 (값)와 같은 다른 유형을 치료하는 I 놀랍다.
예,이 중복 결말은 컴파일러에게 힌트를 줄 (
functions
의 유형을 참고) 필요가있다. –복제본 인 경우 중복 된 내용을 표시하여 관리 할 수 있습니다! 이 질문은 틀린 또는 도움이되지 않는 대답으로 다른 (비슷한) 질문에 반대되는 것처럼 많은 도움이되었습니다. –