Euphorie - Kurzschlussbewertung
Wenn eine Bedingung von getestet wird if, elsif, until, oder while mit and oder orBetreiber wird eine Kurzschlussauswertung verwendet. Zum Beispiel -
if a < 0 and b > 0 then
-- block of code
end if
Wenn a <0 falsch ist, macht sich Euphoria nicht die Mühe zu testen, ob b größer als 0 ist. Es weiß, dass das Gesamtergebnis unabhängig davon falsch ist. Ähnlich -
if a < 0 or b > 0 then
-- block of code
end if
Wenn a <0 wahr ist, entscheidet Euphoria sofort, dass das Ergebnis wahr ist, ohne den Wert von b zu testen, da das Ergebnis dieses Tests irrelevant ist.
Im Allgemeinen, wenn Sie eine Bedingung der folgenden Form haben -
A and B
Wo A und B zwei beliebige Ausdrücke sein können, nimmt Euphoria eine Abkürzung, wenn A falsch ist, und macht das Gesamtergebnis sofort falsch, ohne auch nur Ausdruck B zu betrachten.
Ebenso, wenn Sie eine Bedingung der folgenden Form haben -
A or B
Wenn A wahr ist, überspringt Euphoria die Auswertung von Ausdruck B und erklärt das Ergebnis für wahr.
Short-circuitDie Bewertung von und und oder erfolgt nur für if, elsif, till und while-Bedingungen. Es wird nicht in anderen Kontexten verwendet. Zum Beispiel -
x = 1 or {1,2,3,4,5} -- x should be set to {1,1,1,1,1}
Wenn hier ein Kurzschluss verwendet würde, würden Sie x auf 1 setzen und nicht einmal {1,2,3,4,5} betrachten, was falsch wäre.
Daher kann ein Kurzschluss unter if-, elsif-, till- oder while-Bedingungen verwendet werden, da Sie sich nur darum kümmern müssen, ob das Ergebnis wahr oder falsch ist und Bedingungen erforderlich sind, um ein Atom als Ergebnis zu erzeugen.