if/else について読んでいましたが、従来の if/else ステートメントのすべて (またはほとんど) を 3 項の省略形に置き換えることが理にかなっているのか、それともより有益なのか疑問に思っています。それはそれをより速く実行しますか?それとも、コードが少ないという事実にすべての利点があるのでしょうか?
あなたの洞察に感謝します!
if/else について読んでいましたが、従来の if/else ステートメントのすべて (またはほとんど) を 3 項の省略形に置き換えることが理にかなっているのか、それともより有益なのか疑問に思っています。それはそれをより速く実行しますか?それとも、コードが少ないという事実にすべての利点があるのでしょうか?
あなたの洞察に感謝します!
いずれかの方法で明確な選択肢がある場合は、基本的なロジックに 3 項の if/then ステートメントを使用する必要があります。3 項の if/then ステートメントをネストし始めると、変更を加える必要があるときやバグを修正する必要があるときに、自分自身 (または将来の後継者) の頭痛の種が増えるだけです。
高速化に関しては、3 項ステートメントと通常のステートメントの違いはわかりません。ただし、リモートで明らかにするには十分ではありませんが、ファイル サイズを数バイト削減できます。
それは無意味でしょう。三項は非常に「原始的な」条件でのみ有用であり、ほとんどのif
s はより複雑です。
まったく何も得られないほど多くの時間を失うことになります。
コードはコンピューターではなく人間向けに書かれており、三項演算子の使用が読みにくいと感じる人もいます。
個人的には、プログラマーとして読みやすさに重点を置きたいと思うでしょう。
いいえ、それらは同じコードにコンパイル/解釈されます。
最終的には、コードを読みにくく保守しにくくするだけです。
パフォーマンスの向上はまったくありません。その方が本当に読みやすいです。if-else ステートメントがたくさんある場合は、そのままにしておいた方が簡単です。三項ステートメントは通常、 のような条件の割り当てに使用されます$var = $bool ? "IF TRUE" : "IF FALSE"
。コードの実行を分岐する if ステートメントを実行している場合、三項は実際には意味がありません。
これは古い会話ですが、私はVS2010、.NET 4.0を使用しており、三項演算子は、同等のif-thenステートメントよりも一貫して18%から22%優れたパフォーマンスを発揮します。
絶対にありません。else if を追加したい場合はどうすればよいでしょうか。さらに、三項法は実際にはそれほど高速ではありません
三項式はコードの実行を高速化するわけではありません。三項式は単なるショートカットに過ぎません (また、読みにくくなります)。if/else ステートメントを 3 項に置き換える場合は、十分に注意する必要があります。
if/else チェーンの各句に 1 行しかない場合 (さらに別の if ステートメントではない場合) は、おそらく安全にコードを 3 項に減らして、後から来る人なら誰でもそれを理解できると信頼できます。ただし、コードに複数の行またはネストされた if ステートメントがある場合は、それらを 3 項に変換しないでください。その場合、複雑さを増すだけです。
古い ifs を変更することが、作業中のプロジェクトで推奨されるものになるとは思いません。下位互換性について考えてみてください。プロジェクトを新しいシステムにデプロイしないと、うまくいきません。
そして、あなたが物事をスピードアップしようとしているなら、この問題にはもっと良い練習があると思います.
つまり、要約すると、私はあなたがしないと思います
既存のコードをいつリファクタリングするかについて、明確に定義されたインスタンスがあります。
通常の if then ステートメントから 3 項ステートメントへの変更は、その 1 つではありません。
それらはパフォーマンス上の利点をまったく提供せず、純粋にコードをより簡潔にし、場合によっては読みやすくするために存在します。