運算子

中綴表示法及對應函式

你可以在動態物件的 Formula 中使用中綴表示法 (infix notation) 來表示。當 openBVE 解析時,這些中綴表示法會被轉換成對應的函式。部分函式並不提供對應的中綴表示法,它們只可以以函式來表示。

使用運算子

請留意運算子處理的先後次序。你可以使用括號來規定某一部分要優先處理,就好像計算數學算式一樣。另外,函式的名稱是區分大小寫 (case-insensitive)。

留意以下情況的回存值
當任何的算術運算子或對應函式的結果為無限 (infinity)、不確定的 (indeterminate) 或非實數 (non-real) 時,openBVE 會回存 (return) 0。openBVE 是不會自行避免數值溢出 (numeric overflow),所以你應該考慮到這些問題。

算術運算子

中綴表示法 對應函式 中文 描述
a + b Plus[a,b, ...] 表示加法
a - b Subtract[a,b] 表示減法
-a Minus[a] 負數 將數字轉為負數
a * b Times[a,b,...] 表示乘法
a / b Divide[a,b] 表示除法

關係運算子

中綴表示法 對應函式 中文 描述
a == b Equal[a,b] 等於 a 等於 b 時會回存 1
a != b Unequal[a,b] 不等於 a 不等於 b 時會回存 1
a < b Less[a,b] 小於 a 小於 b 時會回存 1
a > b Greater[a,b] 大於 a 大於 b 時會回存 1
a <= b LessEqual[a,b] 小於等於 a 小於等於 b 時會回存 1
a >= b GreaterEqual[a,b] 大於等於 a 大於等於 b 時會回存 1

邏輯運算子

中綴表示法 對應函式 中文 描述
!a Not[a] 反向 a 為否時會回存 1
a & b And[a,b] ab 均為是時會回存 1
a | b Or[a,b] ab 均為是時會回存 1
a ^ b Xor[a,b] 異或 ab 其中一個為是時會回存 1
真值表
如果你不太清楚各運算子在那些情況會回存是或否的話,請參閱真值表 (truth table)。

運算子處理次序

下表列出各運算子的先後次序,最頂為最優先處理。如同一列中有多個運算子,則處理次序由左至右排列(即同一列中,最左面的運算子會較右邊的運算子優先處理)。

-(負號)
/
*
+-(減號)
==!=<><=>=
!
&
^
|
留意部分混算子組合
到目前為止,一些前綴及中綴表示法的混算子的組合是不能被 openBVE 所辦認。例如 a * -b 是不能被辦認的,你應該將它寫成 a * (-b)-a * b

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *