`

erlang语言基础知识(数值类型\变量)

 
阅读更多



 erlang 语言基础知识

1.1 数值类型

Eshell V7.1  (abort with ^G)

 

1> 2+1.

2> 4*5. 

20

3> 12-123.

-111

4> 9 /2 .     %而对就除数,Erlang并不关心输入的是浮点数,还是整数

4.5

5> 9 /2.0 .   %

4.5

6> 9 div 2.0 .   %整除,整除不能用浮点数,否则会报下面的错误

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

     in operator  div/2

        called as 9 div 2.0

7> 9 div 2 .  

4

8> 9 rem 2.     %获取整数除法的余数(模),可以使用rem(remainder,余数)。

1

 

9> 

 

 

 

 remainder 英[rɪˈmeɪndə(r)]

 

美[rɪˈmendɚ]

 

 

如果想以其他不为10的基数表示整数,只需要以Base#Value这种形式输入数值即可,Base必须在2到36之间  像下面这样

 

15> 2#01010.

10

16> 2#0102.    %0102中的2超出了二进制的表示范围

* 1: syntax error before: 2

16> 3#0102.

11

17> 16#abc.

2748

18> 36#abc.

13368

19> 

在上面的例子中,我们把二进制,3 进制,16进制,36进制数转换成十进制数。

 

1.2  (琦)怪变量,不可改变的变量(一经赋值,不可改变)

  能做算术运算固然不错,但是如果不能保存计算结果的话,也没多大用处,但在函数式编程中,变量是不能变化的。

      在Erlang中,变量必须以大写字符开始。

24> A=1.     

1

25> A1=A2=A=1.

1

26> B=A+A.  %B=2

27> B=2.    %可以”假装“在赋值一次,只要这个值和变量已有的值完全一样,如果不一样,就会报错

2

28> B=3.  %一个变量只能被赋值一次,再次赋值,会报以下的错误,实际上就是模式匹配不一致引起的错误

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

29> B=B+1.

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

30>

%这个错误是=操作符有关,负责比较,并且在不相等是报错

30> 9=5+4.

9

 

31> 9=5+6.

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

 

32> 

 

 

 变量可以以下划线(_)起始,但是在Erlang中,这种变量按照惯例,仅用于不想关心其值的情况。

注意  _VarName这种特殊语法代表一个常规变量(Normal variable),而不是一个匿名变量,一般来说,当某个变量在子句中只使用了一次时,编译器会生成一个警告。但如果这个只用了一次的变量以下划线开头,就不会有错误消息。 

 

只有下划线(_),用在模式匹配时,则是把这个位置的数值,丢弃。

 

  注意》在shell中做测试时,如果不小心给某个变量赋错了值,可以通过f(Variable).函数把这个变量“删除”。f()则是清除所有变量。这两个函数是专门用在shell中使用的,在真实程序中,是不能使用的。

 

 

 

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




 
 

 

37> help().

** shell internal commands **

b()        -- display all variable bindings

e(N)       -- repeat the expression in query <N>

f()        -- forget all variable bindings

f(X)       -- forget the binding of variable X

h()        -- history

history(N) -- set how many previous commands to keep

results(N) -- set how many previous command results to keep

catch_exception(B) -- how exceptions are handled

v(N)       -- use the value of query <N>

rd(R,D)    -- define a record

rf()       -- remove all record information

rf(R)      -- remove record information about R

rl()       -- display all record information

rl(R)      -- display record information about R

rp(Term)   -- display Term using the shell's record information

rr(File)   -- read record information from File (wildcards allowed)

rr(F,R)    -- read selected record information from file(s)

rr(F,R,O)  -- read selected record information with options

** commands in module c **

bt(Pid)    -- stack backtrace for a process

c(File)    -- compile and load code in <File>

cd(Dir)    -- change working directory

flush()    -- flush any messages sent to the shell

help()     -- help info

i()        -- information about the system

ni()       -- information about the networked system

i(X,Y,Z)   -- information about pid <X,Y,Z>

l(Module)  -- load or reload module

lc([File]) -- compile a list of Erlang modules

ls()       -- list files in the current directory

ls(Dir)    -- list files in directory <Dir>

m()        -- which modules are loaded

m(Mod)     -- information about module <Mod>

memory()   -- memory allocation information

memory(T)  -- memory allocation information of type <T>

nc(File)   -- compile and load code in <File> on all nodes

nl(Module) -- load module on all nodes

pid(X,Y,Z) -- convert X,Y,Z to a Pid

pwd()      -- print working directory

q()        -- quit - shorthand for init:stop()

regs()     -- information about registered processes

nregs()    -- information about all registered processes

uptime()   -- print node uptime

xm(M)      -- cross reference check a module

y(File)    -- generate a Yecc parser

** commands in module i (interpreter interface) **

ih()       -- print help for the i module

true

 

38> 

 

 

 

 

 

 

 

 

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

相关推荐

    Erlang基础知识集锦

    Erlang是一种较为“小众”的函数式语言,它允许变量只赋值一次,且为动态类型语言,同时又是强类型语言。其函数式特性意味着每个变量只能赋值一次,并且在Erlang中变量是不可变的,没有共享内存和锁的概念。Erlang...

    Erlang语言开发包

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

    erlang 语言程序设计

    2. **变量**:Erlang中的变量使用大写字母开头,这与其他许多编程语言有所不同。变量一旦赋值后不可再修改,符合函数式编程的特点。 3. **浮点数**:Erlang同样支持浮点数运算,但需要注意的是,由于精度问题,某些...

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

    3. 完成安装后,确保Erlang环境变量已正确配置,可以通过命令行输入`erl`来验证安装是否成功。 接着,我们需要安装RabbitMQ。文件“rabbitmq-server-3.7.18.exe”是RabbitMQ服务器的Windows版。安装步骤如下: 1. ...

    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的语言充分利用了这些优势,同时也引入了...

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

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

    erlang压缩包.rar

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

    Erlang语言连接工具ErlPort.zip

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

    erlang语言20.2版本压缩包.zip

    erlang语言20.2版本压缩包.zip

    erlang趣学指南

    Erlang是一种动态类型语言,类型检查在运行时进行,这意味着你不需要在代码中声明变量的数据类型。不过,理解Erlang的类型系统对于编写高效且可维护的代码至关重要。 递归在Erlang程序设计中占有重要地位,因为...

    RabbitMQ + Erlang语言包下载安装包

    4.安装的时候一定要先安装erlang,因为RabbitMQ是由erlang语言开发的。 (1)安装erlang 1.以管理员身份安装erlang 2.添加完成后,然后再在用户变量PATH中添加上%ERLANG_HOME%\bin,这样在命令行窗口下就可以在任意...

    两本erlang电子书

    第一部分介绍Erlang语言的基础知识,包括其语法特性、并发模型和错误处理策略。读者将了解Erlang的模式匹配、函数式编程概念以及如何利用轻量级进程进行并发编程。第二部分深入探讨OTP,讲解其设计原则和组件,如...

Global site tag (gtag.js) - Google Analytics