erlang operator 备忘
erlang中的运算符
1)算术运算符
1 2 3 4 5 6 7 8 9 10 11 12 | 1>
+1. 1 2> -1. -1 3> 1+1. 2 4> 2/2. 1.0 5> 5 div 3. 1 6> 5 rem 3. 2 |
band是按位与运算,bor是按位或运算,bxor是按位异或,bsl按位左移,bsr按位右移,注意最后的结果都是二进制。
1 2 3 4 5 6 7 8 9 10 | 1>
2#10 band 2#110. 2 2> 3#10 bor 2#100. 7 %这里3#10先换算成了2#11 3> 2#10 bxor 2#11. 1 4> 2#10 bsl 2. 8 5> 2#10 bsr 2. 0 |
2)比较运算符
data type的大小排序:
1 | number < atom < reference < fun <
port < pid < tuple < list < bit string |
=:=和==,/=和=/=的区别:
1 2 3 4 5 6 7 8 | 1>
1 == 1.0. true 2> 1=:=1.0. false 3> 1 /= 1.0. false 4> 1 =/= 1.0. true |
3)逻辑运算符
四个,not,and,or,xor
1 2 3 4 5 6 7 8 | 1>
not true. false 2> true and false. false 3> true xor false. true 4> true or garbage. ** exception error: bad argument |
4)数组运算
最后还有个数组运算,++或者–,很简单
1 2 3 4 5 6 7 8 9 10 | 1>
[1,2] ++
[3,4]. [1,2,3,4] 2> [1,2] -- [3,4]. [1,2] 3> [1,2] -- [1,4]. [2] 4> [1,2] ++ [1,4]. [1,2,1,4] 5> [1,2] -- [1,2]. [] |