- Euphoria 教程
- Euphoria - 主页
- Euphoria - 概述
- Euphoria - 环境
- Euphoria - 基本语法
- Euphoria - 变量
- Euphoria - 常量
- Euphoria - 数据类型
- Euphoria - 运算符
- Euphoria - 分支
- Euphoria - 循环类型
- Euphoria - 流程控制
- Euphoria - 短路
- Euphoria - 序列
- Euphoria - 日期和时间
- Euphoria - 过程
- Euphoria - 函数
- Euphoria - 文件 I/O
- Euphoria 有用资源
- Euphoria - 简易指南
- Euphoria - 库例程
- Euphoria - 有用资源
- Euphoria - 讨论
Euphoria - 短路的评估
当条件由 if、elsif、until 或 while 使用and 或 or 运算符进行测试时,将使用短路评估。例如 −
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 可以是任意两个表达式,当 A 为假时,Euphoria 会采取捷径,并且立即使总体结果为假,甚至不考虑表达式 B。
同样地,每当遇到以下形式的条件时 −
A or B
其中 A 为真,Euphoria 会跳过对表达式 B 的评估,并将结果声明为真。
并且和或的短路评估仅用于 if、elsif、until 和 while 条件。它在其他情况下不使用。例如 −
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 条件中使用,因为你只需要关心结果是真还是假,并且条件需要产生原子作为结果。
广告