ガード句または前提条件(おそらくご覧のとおり)は、特定の条件が満たされているかどうかを確認し、プログラムのフローを中断します。これらは、if
ステートメントの1つの結果だけに本当に関心がある場所に最適です。だから言うよりも:
if (something) {
// a lot of indented code
}
条件を逆転させ、その逆転条件が満たされた場合に中断する
if (!something) return false; // or another value to show your other code the function did not execute
// all the code from before, save a lot of tabs
return
ほど汚いところはありませんgoto
。値を渡して、関数が実行できなかった残りのコードを示すことができます。
ネストされた条件でこれを適用できる最良の例が表示されます。
if (something) {
do-something();
if (something-else) {
do-another-thing();
} else {
do-something-else();
}
}
対:
if (!something) return;
do-something();
if (!something-else) return do-something-else();
do-another-thing();
最初の方がきれいだと主張する人はほとんどいないでしょうが、もちろん、それは完全に主観的なものです。一部のプログラマーは、インデントによって何かが動作している条件を知りたいのですが、メソッドフローを線形に保ちたいと思っています。
preconsがあなたの人生を変えるか、またはあなたを解雇することを一瞬提案しませんが、あなたはあなたのコードを少しだけ読みやすくするかもしれません。