問題タブ [capture-list]
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.
swift - 内部関数キャプチャ リストとその修飾子を迅速に指定する回避策はありますか
内部関数のキャプチャ リストの迅速な仕様を検索しましたが、運がなければ、これらの種類の参照サイクルを破る方法はありますか?
swift - Swift: 弱い自己を使用してブロックベースの実行で原子性を維持する
以下のような弱い自己を使用するコードをよく見かけます。
しかし、self が nil の場合、 setGlobalState() は実行されたが self?.doSomething() は実行されなかったため、状態が矛盾しているように思えます。
次のようにするのが賢明なようです。
最初のケースでの原子性の欠如についての私の懸念は正当ですか? 弱い自己を使用するブロックに関しては、後者のケースがベスト プラクティスである必要がありますか?
swift - キャプチャ リスト内の関数:「余分な引数ラベル」エラー
このコードは問題ありません。コンパイルして期待どおりに動作します。
しかし、代わりにキャプチャリストに関数自体を渡すとself
:
エラーが発生します:
呼び出しの不要な引数ラベル 'number:'
ラベルをはがすと、すべてが正常に戻ります。
しかし、それは奇妙です。それは何ですか?バグまたは機能?ドキュメントでもフォーラムでも、これに関する情報は見つかりません。
おまけの質問:キャプチャ リスト
に渡すときにコードがクラッシュしないのはなぜですか? unowned self
クラッシュしませんか?クラッシュさせたい
編集:
ちなみに、この状況でキャプチャself
と機能自体に違いはありますか?リテインサイクルなどでいうと、機能をキャプチャーすれば、キャプチャーself
もされますよね。