ガード句または前提条件 (おそらくご覧のとおり) は、特定の条件が満たされているかどうかを確認してから、プログラムの流れを中断します。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();
最初の方がきれいだと主張する人はほとんどいないでしょうが、もちろん、それは完全に主観的なものです。一部のプログラマーは、インデントによって何かが動作している条件を知りたいと思っていますが、私はむしろメソッドの流れを直線的に保ちたいと思っています。
プリコンがあなたの人生を変えたり、あなたを寝かせたりするとは一瞬たりとも言いませんが、あなたのコードが少しだけ読みやすくなるかもしれません。