注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
Rustの FnBox について、動機・仕組み・問題点を説明する。 FnBox の動機 以前の記事では、「「クロージ... Rustの FnBox について、動機・仕組み・問題点を説明する。 FnBox の動機 以前の記事では、「「クロージャを boxせずに 返したい」という欲求は人類の四大欲求のひとつと言われている。 」と書いたが、出所の異なるクロージャを同じ型で扱う必要がある場合は無理せず Box に入れるべきである。 例えば、非同期処理など、継続渡し形式で何らかの処理をする場合は、一般に生のクロージャでは使い勝手が悪い。おもちゃ的な例として、フィボナッチ数列の計算を継続渡し形式で行うことを考える。以下のように書くとうまくいかない。 fn fib_cont<T, F: Fn(u32) -> T>(n: u32, continuation: F) -> T { if n <= 1 { continuation(n) } else { fib_cont(n - 1, |a| { fib_cont(n - 2,
2020/11/09 リンク