Erlang的比较运算符
| op | Description |
| == | 等于 |
| /= | 不等于 |
| =< | 小于等于 |
| < | 小于 |
| >= | 大于等于 |
| > | 大于 |
| =:= | 精确的等于 |
| =/= | 精确的不等于 |
等于和精确等于的区别:
如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,==操作会首先把两个数字转换成相同的相同类型。举例:
1> 1==1.0.
true
2> 1=:=1.0.
false
所以一般推荐用精确等于去比较
比较运算符的大小级别:
number < atom < reference < fun < port < pid < tuple < list < bit string
所以
3> 1 > a.返回false
| op | Description | Argument type |
| + | number | |
| - | number | |
| + | number | |
| - | number | |
| * | number | |
| / | 浮点数除法,结果是浮点数 | number |
| bnot | 一元not运算符 | integer |
| div | 整数除法,结果是整数 | integer |
| rem | 求玉树 | integer |
| band | and运算 | integer |
| bor | or运算 | integer |
| bxor | xor异或运算 | integer |
| bsl | 左移位操作 | integer |
| bsr | 右移位操作 | integer |
逻辑运算符
| op | Description |
| not | 一元逻辑not |
| and | 逻辑and |
| or | 逻辑or |
| xor | 逻辑xor |
原子true 和false表示逻辑的”真”和”假”
此外,逻辑运算符还包括一个orelse 和andalso
原始的or和and是不带”短路运算”操作的,而orelse和andalso是带短路运算操作的。
短路运算举例
Express1 and Express2
Express1 andalso Express2
如果Express1 为假,and会继续判断Express2,然后整体判定为假,而andalso”短路”操作,直接判定整个表达式为假,从效率上来说,andalso会高一些