Erlang的比較子
opDescription==等於/=不等於=<小於等於<小於>=大於等於>大於=:=精確的等於=/=精確的不等於等於和精確等於的區別:
如果要比較兩個數,如果兩個數之間是不同的類型,比如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
opDescriptionArgument type+
number-
number+
number-
number*
number/浮點數除法,結果是浮點數numberbnot一元not運算子integerdiv整數除法,結果是整數integerrem求玉樹integerbandand運算integerboror運算integerbxorxor異或運算integerbsl左移位操作integerbsr右移位操作integer
邏輯運算子
opDescriptionnot一元邏輯notand邏輯andor邏輯orxor邏輯xor原子true 和false表示邏輯的”真”和”假”
此外,邏輯運算子還包括一個orelse 和andalso
原始的or和and是不帶”短路運算”操作的,而orelse和andalso是帶短路運算操作的。
短路運算舉例
Express1 and Express2
Express1 andalso Express2
如果Express1 為假,and會繼續判斷Express2,然後整體判定為假,而andalso”短路”操作,直接判定整個運算式為假,從效率上來說,andalso會高一些
複製代碼 代碼如下:
op Description
== 等於
/= 不等於
=< 小於等於
< 小於
>= 大於等於
> 大於
=:= 精確的等於
=/= 精確的不等於
Examples
複製代碼 代碼如下:
> 1==1.0.
true
> 1=:=1.0.
false
> 1 > a.
false
注: 一般語言的 小於等於 是"<=" 而erlang的 "=<" 這樣寫
http://www.bkjia.com/PHPjc/325803.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/325803.htmlTechArticleErlang的比較子 opDescription==等於/=不等於=小於等於小於=大於等於大於=:=精確的等於=/=精確的不等於等於和精確等於的區別: 如果要比較...