`

erlang语言基础知识(原子,布尔代数,比较运算符)

 
阅读更多

  

1、 erlang中,变量不能以小写字符开始的原因,就是erlang中的原子(atom)。原子是常量,唯一的值就是自己的名字,你看到的就是你想得到的--别想得到更多,比如dog,就是dog,你不能操作他,不能改变他,也不能把它分成几部分。小写字母开头的单词只是原子的一种写法,还有其他写法。如下:

 

38> atom.

atom

39> a.

a

40> 'a'.

a

41> 'a'=a.

a

42> 'Autom'.   %大写字母,可以放到‘单引号中

'Autom'

43> 

43> atom@erlang.

atom@erlang

44> erlang'atom.     %这个是有问题的

 

44> 

 

注意有些原子是保留字,这些是不能使用的,类似C或java语言的保留字。如:

 

  after ,and ,andalse,band,begin,bnot,bor,bsl,bsr,bxor,case,catch,cond,div,end,fun,if,let,not.of,or.orelse,query,receive,rem,tyr,when.,xor

 

2、 布尔代数和比较操作符

 

46> true and false.   %逻辑与

false

47> false or true.    %逻辑或

true

48> true xor false.  

true

49> true xor true. 

false

50> not false.

true

51> not  (true xor false).

false

52> 

 

注意:布尔操作符and 和or对操作符两边的参数都会去求值(这不同于我们常用的语言)。如果想要一个短路操作(只有在必要时,才去求值右边的参数),可以使用andaalso,orelse

 

 

52> true andalso true.

true

53> true orelse false.

true

54> 

 

3、相等性测试和不等性测试也很简单,只不过使用的符号和其他语言中稍微有些不同,请注意

 

  在其他语言中,通常使用 == 和 != 来做相等性和不等性比较,

  但在Erlang中,使用的是 =:=  和 =/= 来做比较  

  在做算术计算时,Erlang并不区分浮点和整数,但是在做比较时,却会区分。

 如果你不想区分,可以使用== 和 /= 操作符 因此,关键在于是否需要精确的相等性比较。

 

568> 6=6.

6

69> 6=9.   %原子赋值

** exception error: no match of right hand side value 9

70> 5=:=5.  %精确比较

true

71> 5=:=5.0.

false

72> 5==5.   %数值比较 

true

79> 5==5.0.   

true

73> 5=/=4.   %精确比较

true

74> 5=/=5.

false

75> 5=/=5.0.

true

76> 5/==5.0.

* 1: syntax error before: '='

76> 5/=5.0. 

false

77> 5/=5.  

false

78>

 

4、比较操作

 

80> 

80> 1<2.

true

81> 1<1.

false

82> 1>=1.

true

83> 1<=1.       %为什么报错呢,因为 这个小于等于不同于其他的语言哟

* 1: syntax error before: '<='

83> 1 <=1.

* 1: syntax error before: '<='

83> 1 <= 1.

* 1: syntax error before: '<='

83> 1 =< 1.  %正确的写法,不同于其他语言,小于等于 =<

true

84> 1 =< 2.

true

 

 

 

 5、其他补充

 输入4+qin会怎么样呢?最好的办法,就是以身试法了。

85> 4+qin.

** exception error: an error occurred when evaluating an arithmetic expression

     in operator  +/2

        called as 4 + qin

 

然后被结果吓一大跳,看来,Erlang确实不喜欢把他的基本类型用错,仿真器返回一个错误消息,表明它不喜欢出现在+两别的参数。

不过,对于用错类弄,Erlang也并不总是会生气:

 

94> 0==false.

false

95> 0/=false.

true

96> 0==true. 

false

97> 1==true.

false

98> 1<false.

true

99> 1>false.

false

100> 

 

这是怎么了?

  尽管Erlang不允许把两个不同类型的操作数加在一起,但却允许他们进行比较。这是因为Erlang的语言发明者 把实现性的优先级排在了前面,觉得如果能简单的写出通用排序算法那样的程序,可以对任何数据排序,岂不是更棒。

  以其他语言的了解,是不是还有点蒙圈呢,94行,false应该是0,0==0应该返回true吧。在我们了解的语言中,0代表false,非0代表true; 但注意在Erlang中不是这样的,因为  Erlang中,根本没有true和false,他们都是原子数据类型。

    注意在比较

 注意在比较中,数据类型之间的大小顺序是:number< atom <reference<fun<port,pid<tuple<list<bit string

 

引用Erlang语言的发明者 Joe Armstrong的一句话:“具体的顺序并不重要---重要的的定义明确的全局顺序。”

 

 

今年是大年初一,准备好好学习一下Erlang的相关知识。如果上面的内容对您有帮助,欢迎打赏一下,下面是我的二维码,请微信扫一扫,因为做IT的大多都是diao si ,多少不限,有心鼓励即可,谢谢!

 

 

 

 

  • 大小: 137.3 KB
分享到:
评论

相关推荐

    erlang 语言程序设计

    ### Erlang语言程序设计 #### 一、Erlang语言简介与重要性 Erlang是一种功能强大且灵活的编程语言,它最初由爱立信公司开发,旨在为电信系统提供高并发、分布式处理能力。随着时间的发展,Erlang不仅在电信领域...

    Erlang基础知识集锦

    Erlang是一种专为电信行业开发的并行编程语言和运行时系统,由爱立信公司...虽然本文档提供了Erlang的基础知识,但若要深入学习并使用Erlang进行编程,建议通过系统学习专门介绍Erlang的书籍或资料来获得更全面的了解。

    Erlang语言开发包

    Erlang语言开发包 windows版本 安装rabbitmq必备 提供一个便利的途径,官网最新23版本,下载后需要配置环境变量

    Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)

    Erlang的比较运算符 opDescription==等于/=不等于=&lt;小于等于&lt;小于&gt;=大于等于&gt;大于=:=精确的等于=/=精确的不等于等于和精确等于的区别: 如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,=...

    并发需求下的Scala及Erlang语言的比较与使用

    ### 并发需求下的Scala及Erlang语言的比较与使用 在当今的高并发、大数据处理场景下,选择合适的编程语言对于系统性能至关重要。在众多编程语言中,Scala和Erlang因其强大的并发处理能力和函数式编程特性而受到关注...

    RabbitMQ服务+Erlang语言开发包.rar

    在Windows环境下安装RabbitMQ,你需要先安装Erlang环境,因为RabbitMQ是用Erlang编程语言编写的。Erlang是一种面向并发的、函数式的编程语言,特别适合构建高可用、容错性强的分布式系统。文件“otp_win64_22.1.exe...

    erlang中文基础教程

    顺序编程是 Erlang 编程语言的基础,用户可以使用 Erlang Shell 编写和运行顺序编程代码。顺序编程是指按照顺序执行的编程方式,用户可以使用各种运算符号和函数来实现不同的计算任务。 3. 模块和函数 模块和函数...

    Erlang趣学指南

    书中从Erlang的基础知识讲起,融汇所有的基本概念和语法。 这是一本讲解Erlang编程语言的入门指南,内容通俗易懂,插图生动幽默,示例短小清晰,结构安排合理。书中从Erlang的基础知识讲起,融汇所有的基本概念和...

    Erlang语言安装包

    Erlang语言安装包,RibbitMQ消息服务器支持,20.0 64bit位

    erlang 中文基础教程

    ### Erlang 中文基础教程:理解Erlang Shell与模块函数 #### 1. Erlang Shell:编程者的交互式环境 Erlang Shell是Erlang编程语言提供的一种交互式编程...掌握这些基础知识,是深入学习Erlang编程语言的重要一步。

    Erlang语言安装包32位

    Erlang语言安装包,RibbitMQ消息处理所需支持语言,20.0 32bit

    erlang语言windows安装包

    erlang windows安装包,官网被墙无法访问,亲测可用.....

    基于Erlang VM的语言

    【基于Erlang VM的语言】 Erlang虚拟机(Erlang VM,也称为BEAM虚拟机)是Erlang编程语言的核心组成部分,它为Erlang提供了强大的并发特性和故障容错能力。基于Erlang VM的语言充分利用了这些优势,同时也引入了...

    Erlang语言连接工具ErlPort.zip

    ErlPort 是一个Erlang 库,用来帮助连接 Erlang 与其他编程语言。目前支持的是 Python 和 Ruby。Erlang 库使用 Erlang 端口协议 来简化Erlang 语言和 Erlang 外部术语格式 的连接,设置良好的数据类型映射。   ...

    erlang语言20.2版本压缩包.zip

    erlang语言20.2版本压缩包.zip

    erlang压缩包.rar

    Erlang是一种高级编程语言,特别适用于并发、分布式和...了解了这些基础知识后,你可以开始编写Erlang程序,构建自己的并发应用,体验Erlang带来的高效和可靠性。记得在实践中不断探索,Erlang的世界充满了无限可能。

Global site tag (gtag.js) - Google Analytics