中綴表示法及對應函式
你可以在動態物件的 Formula
中使用中綴表示法 (infix notation) 來表示。當 openBVE 解析時,這些中綴表示法會被轉換成對應的函式。部分函式並不提供對應的中綴表示法,它們只可以以函式來表示。
使用運算子
請留意運算子處理的先後次序。你可以使用括號來規定某一部分要優先處理,就好像計算數學算式一樣。另外,函式的名稱是區分大小寫 (case-insensitive)。
留意以下情況的回存值
當任何的算術運算子或對應函式的結果為無限 (infinity)、不確定的 (indeterminate) 或非實數 (non-real) 時,openBVE 會回存 (return) 0。openBVE 是不會自行避免數值溢出 (numeric overflow),所以你應該考慮到這些問題。
當任何的算術運算子或對應函式的結果為無限 (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] |
及 | 當 a 及 b 均為是時會回存 1 |
a | b |
Or[a,b] |
或 | 當 a 或 b 均為是時會回存 1 |
a ^ b |
Xor[a,b] |
異或 | 當 a 或 b 其中一個為是時會回存 1 |
運算子處理次序
下表列出各運算子的先後次序,最頂為最優先處理。如同一列中有多個運算子,則處理次序由左至右排列(即同一列中,最左面的運算子會較右邊的運算子優先處理)。
- (負號) |
/ |
* |
+ ,- (減號) |
== ,!= ,< ,> ,<= ,>= |
! |
& |
^ |
| |
留意部分混算子組合
到目前為止,一些前綴及中綴表示法的混算子的組合是不能被 openBVE 所辦認。例如
到目前為止,一些前綴及中綴表示法的混算子的組合是不能被 openBVE 所辦認。例如
a * -b
是不能被辦認的,你應該將它寫成 a * (-b)
或 -a * b
。