Điều khoản bảo vệ hoặc điều kiện trước (như bạn có thể thấy) kiểm tra xem liệu một điều kiện nhất định có được đáp ứng và sau đó phá vỡ dòng chảy của chương trình. Chúng tuyệt vời cho những nơi mà bạn thực sự chỉ quan tâm đến một kết quả của một if
tuyên bố. Vì vậy, thay vì nói:
if (something) {
// a lot of indented code
}
Bạn đảo ngược điều kiện và ngắt nếu điều kiện đảo ngược đó được thỏa mãn
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
không nơi nào gần bẩn như goto
. Nó cho phép bạn chuyển một giá trị để hiển thị phần còn lại của mã mà hàm không thể chạy.
Bạn sẽ thấy các ví dụ tốt nhất về nơi có thể áp dụng điều này trong các điều kiện lồng nhau:
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();
Bạn sẽ thấy ít người tranh luận đầu tiên là sạch hơn nhưng tất nhiên, nó hoàn toàn chủ quan. Một số lập trình viên muốn biết những điều kiện mà một cái gì đó đang hoạt động theo cách thụt lề, trong khi tôi muốn giữ dòng phương thức tuyến tính hơn.
Tôi sẽ không đề xuất trong một khoảnh khắc rằng các tiền tố sẽ thay đổi cuộc sống của bạn hoặc khiến bạn cảm thấy thoải mái nhưng bạn có thể thấy mã của mình dễ đọc hơn một chút.