
- 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 條件中使用,因為你只需要關心結果是真還是假,並且條件需要產生原子作為結果。
廣告