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 Expr
Expr1 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
|
Description
|
not |
一元逻辑非 |
and |
逻辑与 |
or |
逻辑或 |
xor |
逻辑异或 |
例子:
16> not true.
false
17> true and false.
false
18> true xor false.
true
另外,还有两个布尔运算符 orelse 和 andalso,这两个用于短路运算,写法如下:
Expr1 orelse Expr2
Expr1 andalso Expr2
什么是短路运算?
例子:
Expr1 and Expr2
Expr1 andalso Expr2
对于and运算,如果Expr1为假,还会继续执行Expr2,然后再判定表达式为假;而andalso运算,当Expr1为假就判定表达式为假,不再执行Expr2,所以这里andalso效率比较高。
参考:
分享到:
相关推荐
Erlang的比较运算符 opDescription==等于/=不等于=<小于等于<小于>=大于等于>大于=:=精确的等于=/=精确的不等于等于和精确等于的区别: 如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,=...
谈谈erlang网络环境下的几种数据流转形式(视频,1/3) 这是第二卷。 我在2009 CN Erlounge IV的“谈谈erlang网络环境下的几种数据流转形式”讲演的视频。PPT等其它资料在这里: ... 有关信息参见: ...
**标题:“谈谈erlang网络环境下的几种数据流转形式”** **描述分析:** 这段描述指出这是一个关于Erlang网络环境中数据传输方式的演讲PPT,源自2009年CN Erlounge IV活动,由讲者周爱民分享。Erlounge可能是一个...
这是第一卷。 我在2009 CN Erlounge IV的“谈谈erlang网络环境下的几种数据流转形式”讲演的视频。PPT等其它资料在这里: http://download.csdn.net/source/2037499 有关信息参见: ...
这是第三卷。 在2009 CN Erlounge IV的“谈谈erlang网络环境下的几种数据流转形式”讲演的视频。PPT等其它资料在这里: http://download.csdn.net/source/2037499 有关信息参见: ...
首先,Erlang是一种严格、动态类型的函数式编程语言。它的特点是没有破坏性更新,即数据不可变。Erlang内置了对并发的支持,通过进程实现,这些进程之间通过异步消息传递进行通信。在Erlang中,编译单元是模块,每个...
分布式Erlang使用虚拟机(VM)的克隆,使得构建大规模分布式系统变得简单。 ### 7. 错误处理与恢复 Erlang采用“let it crash”哲学,鼓励程序在遇到错误时立即崩溃,而不是尝试恢复。这样可以快速暴露问题,便于...
Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性和处理大量并发连接的能力而被广泛应用于电信、互联网基础设施和实时系统。RabbitMQ...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...
Erlang是一种并发式、函数式的编程语言,由瑞典电信设备制造商Ericsson开发,最初用于构建高可用性、容错性和可扩展性的分布式系统。"xiandiao_erlang_Erlang课后习题_"这个压缩包文件包含了Erlang程序设计第二版的...
Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高可用性、容错性强、低延迟的系统。Erlang9指的是Erlang/OTP(Open Telephony Platform)的第9个主要版本。OTP是Erlang...
Erlang/OTP 26.2.1,Erlang,OTP,26.2.1
Erlang是一种强大的编程语言,特别适合于构建高并发、分布式和容错性强的系统。由爱立信的CS-Lab开发,Erlang的设计目标是处理大规模并发活动,这在传统的操作系统上可能非常困难。它的核心特性使其在处理并发性、...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性、并发性和内存管理机制而被广泛应用于网络通信、数据库系统以及消息中间件,如...
Erlang B和Erlang C是电信领域中两种重要的流量模型,用于预测和分析通信系统中的呼叫处理能力和拥塞情况。这两个模型由丹麦工程师Agner Krarup Erlang在20世纪初提出,至今仍广泛应用于现代通信网络的设计与优化。 ...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在“erlang programming”这个主题下,我们可以深入探讨以下几个关键知识点: 1. **Erlang语言基础**:Erlang是瑞典...