1)算术运算符
+:加 -:减 *:乘 /:除(结果为float类型) div:整除 rem:整除取余
注意最后的结果都是二进制
band是按位与运算 2#10 band 2#110. 》》 2
bor是按位或运算 3#10 bor 2#100. 》》 7 3#10先转为2#11
bxor是按位异或 2#10 bxor 2#11. 》》 1
bsl按位左移 2#10 bsl 2 》》 8 2#1000
bsr按位右移 2#10 bsr 2 》》 0
2)比较运算符
1.比较运算符的大小级别::number < atom < reference < fun < port < pid < tuple < list < bit string
2.==等于 /=不等于 =<小于等于 <小于 >=大于等于 >大于 =:=精确的等于 =/=精确的不等于
等于和精确等于的区别:如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,==操作会首先把两个数字转换成相同的相同类型。举例:
1> 1==1.0.
true
2> 1=:=1.0.
false
3.列表是按照字典顺序排列,就像是字典里面的词一样.第一个元素先比较,然后第二个元素再次比较.
[a,b]<[d,e] True
[a,b]<[a,a] Flase
4.元素的比较是先比较元素的数目,然后在一个个比较各个元素
{a,b}<{a,b,c} True
{a,b}<{a,c} True
3)逻辑运算符
not:取反 and:全真为真,一假为假 or:一真为真,全假为假 xor:异或
andalso与and以及orelse与or的区别:
原始的or和and是不带”短路运算”操作的,而orelse和andalso是带短路运算操作的
短路运算举例
Express1 and Express2
Express1 andalso Express2
如果Express1 为假,and会继续判断Express2,然后整体判定为假,而andalso”短路”操作,直接判定整个表达式为假,从效率上来说,andalso会高一些
4)数组运算
最后还有个数组运算,++或者–,很简单
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].
[]