問題タブ [swift4]

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 投票する
3 に答える
76 参照

swift - 連続した if ステートメントはどのように評価されますか?

チェックする if ステートメントが 2 つありますが、1 つのチェックは非常にコストがかかります。したがって、次のステートメントのどれが最もパフォーマンスが高いか疑問に思っています。

1) 「破滅のピラミッド」は嫌いだけど、うまくいくと確信している

2)私は通常このように書いています...しかしisCostlyBool、それisSimpleBoolはチェックしfalseますか?

3) これが機能することはわかっていますが、解決策 2 とは評価が異なりますか?

4) 私が見つけていない別の解決策はありますか?

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

arrays - 「パラメーター 'self' への同時アクセス...」という警告は本当にここに当てはまりますか?

Array最後の要素をポップしてすぐに別の配列に追加できる拡張機能を作成しました。

遊び場のこの簡単な例は魅力のように機能します:

しかし、構造体 (警告の後のコード) 内で拡張機能を使用すると、次の警告が表示されます。

パラメータ 'self' への同時アクセスですが、変更には排他的アクセスが必要です。ローカル変数へのコピーを検討する

これは単なる警告であり、私のアプリは予想どおりの動作で問題なく動作しますが、本当に危険があるのか​​知りたいです。SE-0176を見ると、警告の目的を理解できます。これを使用して、追加先の同じ配列から最後の要素をポップすると、コピーオンライトがそれを台無しにする可能性があるためです。そして、それは構造体に関連していると思います。しかし、同じ構造体内の 2 つの異なる配列で使用しても、危険はありません。潜在的な問題を回避する拡張機能を作成する方法はありますか?