目录

euphoria - 短路( Short Circuit)

当使用if, elsif, until或者使用andor运算符测试条件while使用短路评估。 例如 -

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

如果<0为假,那么Euphoria并不打算测试b是否大于0.它知道总体结果是假的,无论如何。 同样 -

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

如果a <0为真,则Euphoria会立即确定结果为true,而不测试b的值,因为此测试的结果无关紧要。

一般而言,只要您有以下表格的条件 -

A and B

在A和B可以是任何两个表达式的情况下,当A为假时,Euphoria会采用捷径,并且在没有查看表达式B的情况下立即使整体结果为假。

同样,只要您有以下表格的条件 -

A or  B

如果A为真,Euphoria会跳过表达式B的评估,并声明结果为真。

对if,elsif,until和while条件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条件,因为你只需要关心结果是真还是假,并且结果需要条件来产生原子。

↑回到顶部↑
WIKI教程 @2018