Penjaga klausa atau pra-kondisi (seperti yang mungkin Anda lihat) periksa untuk melihat apakah kondisi tertentu terpenuhi dan kemudian memutus aliran program. Mereka bagus untuk tempat-tempat di mana Anda benar-benar hanya tertarik pada satu hasil if
pernyataan. Jadi daripada mengatakan:
if (something) {
// a lot of indented code
}
Anda membalikkan kondisi dan mematahkan jika kondisi terbalik itu terpenuhi
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
sama sekali tidak kotor goto
. Ini memungkinkan Anda untuk melewatkan nilai untuk menunjukkan sisa kode Anda bahwa fungsi tidak dapat berjalan.
Anda akan melihat contoh terbaik di mana ini dapat diterapkan dalam kondisi bersarang:
if (something) {
do-something();
if (something-else) {
do-another-thing();
} else {
do-something-else();
}
}
vs:
if (!something) return;
do-something();
if (!something-else) return do-something-else();
do-another-thing();
Anda akan menemukan beberapa orang yang berargumen bahwa yang pertama lebih bersih tetapi tentu saja, ini sangat subjektif. Beberapa programmer ingin mengetahui kondisi apa yang sesuatu beroperasi di bawah lekukan, sementara saya lebih suka menjaga aliran metode linear.
Saya tidak akan menyarankan untuk sesaat bahwa prekursor akan mengubah hidup Anda atau membuat Anda santai tetapi Anda mungkin menemukan kode Anda sedikit lebih mudah untuk dibaca.