Erlang学习记录:运算符
数学运算符
说明 | 详细 | 符号 |
---|---|---|
加减乘 | +-* | |
浮点数除 | 结果为浮点数 | / |
整数除 | 除数和被除数都必须是整数,结果为整数 | div |
整数取余 | rem |
逻辑运算符
说明 | 符号 | 详细 |
---|---|---|
and | 前后两个值都为真,则返回真 | |
andalso | 前后一个为假,则为假,如果第一个参数为假,则不会运算第二个参数(短路),类似于&& | |
or | 前后任一个参数为真,则返回真 | |
orelse | 前后任一个参数为真,则返回真,如果第一个参输是真,则不会运算第二个参数(短路),类似于|| | |
异或 | xor | 两个参数一个真,一个假,则返回真 |
一元否定 | not | 取反, 可写作 not is_list([]) 或者 not(is_list([])) |
项元比较运算符
说明 | 符号 | 详细 |
---|---|---|
等于,只比较两边的值二忽略两边的具体类型 | == | 如1==1.0的结果为true |
不等于,只比较两边的值二忽略两边的具体类型 | /= | |
精确等于,比较值得同时比较数据类型 | =:= | |
精确不等于 | =/= | |
大于等于 | >= | |
小于等于 | =< | |
大于 | > | |
小于 | < |
如果比较的是不同类型的数据,则参考以下顺序:
number < atom < reference < func < port < pid < tuple < list < binary
及[] > {}的结果为true
列表比较按字典顺序比较,及从第一个元素开始先比较
元组比较会首先比较元素数量,不同元素数量的情况下,元素数量多的元组大于元素少的元组;两个元组长度相同的情况下同样按字典顺序比较