0
はFn
クロージャを構成することができますcompose
機能です:このコン機能がFnMut
クロージャを取ることができるように`FnMut`クロージャを構成できる関数を書くにはどうしたらいいですか?ここ
fn compose<'a, T1, T2, T3, F1, F2>(f: F1, g: F2) -> Box<Fn(T1) -> T3 + 'a>
where F1: Fn(T1) -> T2 + 'a,
F2: Fn(T2) -> T3 + 'a
{
box move |x| g(f(x))
}
は、どのように私はそれを作るのですか?私が試した:
fn compose<'a, T1, T2, T3, F1, F2>(f: F1, g: F2) -> Box<FnMut(T1) -> T3 + 'a>
where F1: FnMut(T1) -> T2 + 'a,
F2: FnMut(T2) -> T3 + 'a
{
box move |x| g(f(x))
}
しかし、それは文句を言う:
error: cannot borrow captured outer variable in an `FnMut` closure as mutable
box move |x| g(f(x))
^
error: cannot borrow captured outer variable in an `FnMut` closure as mutable
box move |x| g(f(x))
^
は、この拡張、FnOnce
、クロージャで動作させることができますか?
興味深いです。エラーメッセージはあまり役に立ちませんが、改善できるかどうか疑問です。 – Shepmaster
ありがとうございます、 'FnOnce'でも動作させることができますか? – CMCDragonkai