Euphoria - Đánh giá ngắn mạch
Khi một điều kiện được kiểm tra bằng if, elsif, until, hoặc là while sử dụng and hoặc là orngười vận hành, đánh giá ngắn mạch được sử dụng. Ví dụ -
if a < 0 and b > 0 then
-- block of code
end if
Nếu a <0 là false, thì Euphoria không bận tâm đến việc kiểm tra xem b có lớn hơn 0. Nó biết rằng kết quả tổng thể là sai bất kể. Tương tự -
if a < 0 or b > 0 then
-- block of code
end if
nếu a <0 là true, thì Euphoria ngay lập tức quyết định rằng kết quả là true, mà không cần kiểm tra giá trị của b, vì kết quả của phép thử này không liên quan.
Nói chung, bất cứ khi nào bạn có một điều kiện của mẫu sau:
A and B
Trong đó A và B có thể là hai biểu thức bất kỳ, Euphoria rút gọn khi A sai và ngay lập tức làm cho kết quả tổng thể sai, thậm chí không cần nhìn vào biểu thức B.
Tương tự, bất cứ khi nào bạn có một điều kiện có dạng sau:
A or B
Trong trường hợp A đúng, Euphoria bỏ qua việc đánh giá biểu thức B và tuyên bố kết quả là đúng.
Short-circuitđánh giá và và hoặc chỉ diễn ra đối với các điều kiện if, elsif, cho đến khi và trong khi. Nó không được sử dụng trong các ngữ cảnh khác. Ví dụ -
x = 1 or {1,2,3,4,5} -- x should be set to {1,1,1,1,1}
Nếu đoản mạch được sử dụng ở đây, bạn sẽ đặt x thành 1 và thậm chí không nhìn vào {1,2,3,4,5}, điều này sẽ sai.
Do đó, hiện tượng đoản mạch có thể được sử dụng trong các điều kiện if, elsif, Until, hoặc while, vì bạn chỉ cần quan tâm xem kết quả là đúng hay sai và kết quả là cần có các điều kiện để tạo ra một nguyên tử.