所有権バトル
だんだんこういうブロックで async なりクロージャなりを書くのに落ち着いてくる
{
// キャプチャされる変数の所有権メンテ
let x = x.clone();
async move { 処理 }
}
{
let foo=&foo;
let bar=bar.clone();
|| move { /* fooは参照、 bar は move }
}
みたいなのができるので、構文をどうするかはさておき機能としては既に選択的な move はできる
C# の async/await が AsyncMethodBuilder で拡張可能になったものの、実用的な利用例が今のところ UniTask のような Task の再実装しかないのが悲しいと思っている。 Task ハックで面白い例が Azure Functions の Durable Functions で、同じメソッドを何度も呼ぶけど、どこまで実行するかは状態次第っていう使い方をしていて、そういう感じの面白技をもっと見たいなぁって思う