Застереження або попередні умови (як ви, мабуть, бачите) перевірте, чи виконується певна умова, а потім порушує потік програми. Вони чудово підходять для місць, де вас насправді цікавить лише один результат if
заяви. Тому замість того, щоб сказати:
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();
}
}
vs:
if (!something) return;
do-something();
if (!something-else) return do-something-else();
do-another-thing();
Ви знайдете мало людей, які стверджують, що перший - це чистіше, але, звичайно, це абсолютно суб'єктивно. Деякі програмісти люблять знати, в яких умовах щось працює за допомогою відступів, тоді як я б швидше тримав потоки методу лінійними.
Я ні на одну мить не підказую, що прекони змінять ваше життя або закладуть, але ви, можливо, знайдете свій код трохи простіше для читання.