問題タブ [structured-concurrency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
211 参照

swift - アクターの nonSendable プロパティを変更することが合法なのはなぜですか?

次のコードは、Swift 5.5 (ベータ) で有効です。

なぜこれが合法なのですか?犬の所有物は共有状態ですね。アクターの犬に異なるスレッドで同時にアクセスする危険はありませんか? それこそが役者が守るべきものではないでしょうか。

不思議なことに、アクターのプロパティが の代わりに でdog宣言されている場合、アクセス中に言わざるを得なくなります。なぜそれが違いを生むのですか?犬は参照型です。その場で可変であり、またはで宣言されているかどうかに関係なく、まったく同じ方法で可変です。varletawaitletvar

0 投票する
1 に答える
109 参照

swift - ローカルの変更可能な構造体を async let バインディングに渡す

URL リクエストを作成し、それを async let バインディングに渡したいのですが、これは私には自然なことのように思えます。

エラーが発生するのはなぜですか? URLRequest構造体であるため、関数に渡すと、関数はその構造体のコピーを取得する必要があるためrequest、非同期呼び出しの後に変更しても、呼び出しに影響することはありません。

呼び出しが非同期で行われることはわかっていますが、呼び出しの時点でパラメーターをキャプチャし、呼び出しが行われたかのように実行を継続することを期待します (したがって、request呼び出しの時点でのコピーが渡されましたdata(for: request).

letまた、次のように、別の変数を作成せず、クロージャーを使用して初期化せずにそれを行う便利な方法はありますかrequest?