2.7 序列程式設計-erlang算術表示式
阿新 • • 發佈:2018-12-31
算術表示式由以下運算子構成:
運算子 | 描述 | 型別 | 運算元型別 | 優先順序 |
---|---|---|---|---|
+ X | + X | 單目 | 混合 | 1 |
- X | - X | 單目 | 混合 | 1 |
X * Y | X * Y | 雙目 | 混合 | 2 |
X / Y | X / Y(浮點除法) | 雙目 | 混合 | 2 |
X div Y | X整除Y | 雙目 | 整數 | 2 |
X rem Y | X除以Y的餘數 | 雙目 | 整數 | 2 |
X band Y | X與Y的位與 | 雙目 | 整數 | 2 |
X + Y | X + Y | 雙目 | 混合 | 3 |
X - Y | X - Y | 雙目 | 混合 | 3 |
X bor Y | X與Y位或 | 雙目 | 整數 | 3 |
X bxor Y | X與Y的位算數異或 | 雙目 | 整數 | 3 |
X bsl N | X算數左移N位 | 雙目 | 整數 | 3 |
X bsr N | X右移N位 | 雙目 | 整數 | 3 |
單目運算子有一個引數,雙目運算子有兩個引數。混合意味著引數即可以是integer 也可以是float。單目運算子的返回值與其引數型別相同。
雙目混合運算子(即*、-、+)在引數都是integer時返回型別為integer的物件,在引數至少包含一個float時返回一個float。浮點除法運算子/總是返回一個float。
雙目整數運算子(即band、div、rem、bor、bxor、bsl、bsr)的引數必須是整數,其返回值也是整數。
求值順序取決於運算子的優先順序:首先計算第1優先順序的運算子,然後是第2優先順序,以此類推。括號內的表示式優先求值。
優先順序相同的運算子從左到右進行求值。比如:
A - B - C - D
其求值順序與下面的表示式一致:
(((A - B) - C) - D)