Sử dụng một Nếu
Trong cuốn sách của Don Knuth về GOTO, tôi đã đọc anh ta đưa ra một lý do cho việc luôn luôn có điều kiện có khả năng nhất đến trước trong một tuyên bố if. Theo giả định rằng đây vẫn là một ý tưởng hợp lý (và không phải là một trong những cân nhắc thuần túy cho tốc độ của thời đại). Tôi nói rằng trả về sớm không phải là thực hành lập trình tốt, đặc biệt là xem xét thực tế rằng chúng thường xuyên hơn không được sử dụng để xử lý lỗi, trừ khi mã của bạn có nhiều khả năng thất bại hơn là không thất bại :-)
Nếu bạn làm theo lời khuyên ở trên, bạn cần đặt trả về đó ở dưới cùng của hàm, và sau đó bạn thậm chí có thể không gọi nó là trả về ở đó, chỉ cần đặt mã lỗi và trả lại hai dòng. Qua đó đạt được mục nhập 1 lối thoát lý tưởng.
Delphi cụ thể ...
Tôi nghĩ rằng đây là một thực hành lập trình tốt cho các lập trình viên Delphi, mặc dù tôi không có bất kỳ bằng chứng nào. Trước D2009, chúng tôi không có cách nguyên tử để trả về giá trị, chúng tôi có exit;
và result := foo;
hoặc chúng tôi chỉ có thể ném ngoại lệ.
Nếu bạn phải thay thế
if (true) {
return foo;
}
cho
if true then
begin
result := foo;
exit;
end;
bạn có thể phát ốm khi thấy điều đó ở đầu mỗi chức năng của bạn và thích
if false then
begin
result := bar;
...
end
else
result := foo;
và chỉ cần tránh exit
hoàn toàn.