Euphoria-short-circuit

提供:Dev Guides
移動先:案内検索

陶酔-短絡評価

条件が and または or 演算子を使用して if、elsif、until 、または while によってテストされる場合、短絡評価が使用されます。 たとえば-

if a < 0 and b > 0 then
   -- block of code
end if

a <0が偽の場合、Euphoriaはbが0より大きいかどうかをテストしません。 それにもかかわらず、全体的な結果が偽であることを知っています。 同様に-

if a < 0 or b > 0 then
   -- block of code
end if

a <0が真の場合、Euphoriaは、bの値をテストせずに、結果が真であるとすぐに判断します。このテストの結果は無関係であるためです。

一般的には、次の形式の条件があるときはいつでも-

A and B

AとBが任意の2つの式である場合、Euphoriaは、Aが偽の場合にショートカットを使用し、式Bを見なくてもすぐに全体の結果を偽にします。

同様に、次の形式の条件があるときはいつでも-

A or  B

Aがtrueの場合、Euphoriaは式Bの評価をスキップし、結果がtrueであると宣言します。

if、elsif、until、およびwhile条件についてのみandおよびorの Short-circuit 評価が行われます。 他のコンテキストでは使用されません。 たとえば-

x = 1 or {1,2,3,4,5} -- x should be set to {1,1,1,1,1}

ここで短絡が使用された場合、xを1に設定し、\ {1,2,3,4,5}を見るだけでなく、間違っています。

したがって、if、elsif、until、またはwhile条件で短絡を使用できます。これは、結果がtrueまたはfalseであり、結果としてアトムを生成するために条件が必要かどうかだけを考慮する必要があるためです。