9
에 인수로 함수를 전달하는 :방법은 다음과 녹 프로그램을 감안할 때 녹
fn call_twice<A>(val: A, f: fn(A) -> A) -> A {
f(f(val))
}
fn main() {
fn double(x: int) -> int {x + x};
println!("Res is {}", call_twice(10i, double));
// println!("Res is {}", call_twice(10i, (x: int) -> int {x + x}));
//^this line will fail
}
왜 내가 함수와 double
통과 할 수 있지만, 인라인하지? 어딘가에 함수를 정의하지 않고 동일한 동작을 달성하는 좋은 방법은 무엇입니까?
설명해 주셔서 감사합니다. 임시 변수에 약간 이상하지만, 좀 더 안정적인 버전으로 수정 될 것입니다. –
이것은 녹 1.7에서 작동하지 않는 것 같습니다. https://play.rust-lang.org/?gist=ad35b80eeae1d1966944a66a75d0ad80&version=stable –
@SandeepDatta이 답변은 2014 년부터 제공됩니다; 이 코드는 녹 1.0에서도 유효하지 않았을 것입니다. 나는 그것을 업데이트했다. –