たとえば、条件によって機能を実行するには:
condition ? exec1() : exec2;
または1つの機能:
condition ? exec1() : null;
condition ? exec1() : null;
または
condition ? exec1() : 0;
condition ? exec1() : 0;
&&演算子を使用して、さらに最適化できます。 例:
condition && exec1();
そのような設計を使用することには1つの問題があります。1つの条件下で複数の機能を同時に実行することは不可能です。 オプション
condition ? exec1(); exec2(); : 0;
condition ? exec1(); exec2(); : 0;
間違っています。
解決策は次のとおりです。
condition ?
(function() {
exec1();
exec2();
})()
:0;
2番目の解決策:
condition ? exec1() && exec2() && exec3() : 0;
condition ? exec1() && exec2() && exec3() : 0;
はるかにコンパクトですが、残念ながら大きな欠点があります:実行可能関数の1つがfalseを返すと、インタープリターは次の実行を停止します。||演算子を使用すると、同じ問題が発生し、インタープリターは最初の真の結果で停止します。
解決策は、「ビット単位」演算子を使用する
condition ? exec1() | exec2() | exec3() : 0;
:
condition ? exec1() | exec2() | exec3() : 0;
condition ? exec1() | exec2() | exec3() : 0;
または
condition && ( exec1() | exec2() | exec3() );
彼らが言うように、便利でコンパクトに。
PS関数の区切り記号としてコンマを使用することもできます。
condition ? ( exec1() , exec2() , exec3() ) :0;
paulbakaus.comの資料に基づく