博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单谈谈Erlang的几种运算符
阅读量:2058 次
发布时间:2019-04-29

本文共 1235 字,大约阅读时间需要 4 分钟。

Erlang 有好几种运算符,比较运算符、数学运算符、布尔运算符,文章针对这几种运算符做讨论,参考erlang文档,
以例子说明。
Erlang的比较运算符
写法如下:
Expr1 op Expr2
1> 1 == 1.
true
op Description
== 等于
/= 不等于
=< 小于或等于
< 小于
>= 大于或等于
> 大于
=:= 恒等于
=/= 恒不等于
以=:=和==为例,说明恒等于和等于的区别:
2> 1 == 1.0.
true
3> 1 =:= 1.0.
false
不同类型比较会有什么结果?
针对不同数据类型比较,如下:
number < atom < reference < fun < port < pid < tuple < list < bit string
就是说,[] > 0结果是true

Erlang的数学运算符
有两种写法,如下:
op ExprExpr1 op Expr2
4> + 1.
1
5> 1 + 1.
2
op Description Argument type
+ 一元 + number
- 一元 - number
+ 加法 number
-
减法
number
*
乘法
number
/ 浮点除法 number
div
整数除法
integer
bnot 一元 not 位运算 integer
rem 整数求余 integer
band 与运算 integer
bor 或运算 integer
bxor 异或运算 integer
bsl 左移运算 integer
bsr 右移运算 integer

例子如下:

6> +1.
1
7> -1.
-1
8> 1+1.
2
9> 4/2.
2.0
10> 5 div 2.
2
11> 5 rem 2.
1
12> 2#10 band 2#01.
0
13> 2#10 bor 2#01.3
14> 8 bsr 1.
4
15> 8 bsl 1.
16
Erlang的布尔运算符
写法如下:
op ExprExpr1 op Expr2
op Description
not 一元逻辑非
and 逻辑与
or 逻辑或
xor 逻辑异或
例子:
16> not true.
false
17> true and false.
false
18> true xor false.
true
另外,还有两个布尔运算符 orelse 和 andalso,这两个用于短路运算,写法如下:
Expr1 orelse Expr2Expr1 andalso Expr2

什么是短路运算?

例子:

Expr1 and Expr2

Expr1 andalso Expr2

对于and运算,如果Expr1为假,还会继续执行Expr2,然后再判定表达式为假;而andalso运算,当Expr1为假就判定表达式为假,不再执行Expr2,所以这里andalso效率比较高。



参考:

转载地址:http://gsxlf.baihongyu.com/

你可能感兴趣的文章
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>
(PAT 1154) Vertex Coloring (图的广度优先遍历)
查看>>
(PAT 1115) Counting Nodes in a BST (二叉查找树-统计指定层元素个数)
查看>>
(PAT 1143) Lowest Common Ancestor (二叉查找树的LCA)
查看>>
(PAT 1061) Dating (字符串处理)
查看>>
(PAT 1118) Birds in Forest (并查集)
查看>>
数据结构 拓扑排序
查看>>
(PAT 1040) Longest Symmetric String (DP-最长回文子串)
查看>>
(PAT 1145) Hashing - Average Search Time (哈希表冲突处理)
查看>>
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>