erlang 语言基础知识
1.1 数值类型
Eshell V7.1 (abort with ^G)
1> 2+1.
3
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
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>
相关推荐
Erlang是一种较为“小众”的函数式语言,它允许变量只赋值一次,且为动态类型语言,同时又是强类型语言。其函数式特性意味着每个变量只能赋值一次,并且在Erlang中变量是不可变的,没有共享内存和锁的概念。Erlang...
Erlang语言开发包 windows版本 安装rabbitmq必备 提供一个便利的途径,官网最新23版本,下载后需要配置环境变量
2. **变量**:Erlang中的变量使用大写字母开头,这与其他许多编程语言有所不同。变量一旦赋值后不可再修改,符合函数式编程的特点。 3. **浮点数**:Erlang同样支持浮点数运算,但需要注意的是,由于精度问题,某些...
3. 完成安装后,确保Erlang环境变量已正确配置,可以通过命令行输入`erl`来验证安装是否成功。 接着,我们需要安装RabbitMQ。文件“rabbitmq-server-3.7.18.exe”是RabbitMQ服务器的Windows版。安装步骤如下: 1. ...
顺序编程是 Erlang 编程语言的基础,用户可以使用 Erlang Shell 编写和运行顺序编程代码。顺序编程是指按照顺序执行的编程方式,用户可以使用各种运算符号和函数来实现不同的计算任务。 3. 模块和函数 模块和函数...
书中从Erlang的基础知识讲起,融汇所有的基本概念和语法。 这是一本讲解Erlang编程语言的入门指南,内容通俗易懂,插图生动幽默,示例短小清晰,结构安排合理。书中从Erlang的基础知识讲起,融汇所有的基本概念和...
Erlang语言安装包,RibbitMQ消息服务器支持,20.0 64bit位
### Erlang 中文基础教程:理解Erlang Shell与模块函数 #### 1. Erlang Shell:编程者的交互式环境 Erlang Shell是Erlang编程语言提供的一种交互式编程...掌握这些基础知识,是深入学习Erlang编程语言的重要一步。
Erlang语言安装包,RibbitMQ消息处理所需支持语言,20.0 32bit
erlang windows安装包,官网被墙无法访问,亲测可用.....
【基于Erlang VM的语言】 Erlang虚拟机(Erlang VM,也称为BEAM虚拟机)是Erlang编程语言的核心组成部分,它为Erlang提供了强大的并发特性和故障容错能力。基于Erlang VM的语言充分利用了这些优势,同时也引入了...
### 并发需求下的Scala及Erlang语言的比较与使用 在当今的高并发、大数据处理场景下,选择合适的编程语言对于系统性能至关重要。在众多编程语言中,Scala和Erlang因其强大的并发处理能力和函数式编程特性而受到关注...
Erlang是一种高级编程语言,特别适用于并发、分布式和...了解了这些基础知识后,你可以开始编写Erlang程序,构建自己的并发应用,体验Erlang带来的高效和可靠性。记得在实践中不断探索,Erlang的世界充满了无限可能。
ErlPort 是一个Erlang 库,用来帮助连接 Erlang 与其他编程语言。...Erlang 库使用 Erlang 端口协议 来简化Erlang 语言和 Erlang 外部术语格式 的连接,设置良好的数据类型映射。 标签:ErlPort
erlang语言20.2版本压缩包.zip
Erlang是一种动态类型语言,类型检查在运行时进行,这意味着你不需要在代码中声明变量的数据类型。不过,理解Erlang的类型系统对于编写高效且可维护的代码至关重要。 递归在Erlang程序设计中占有重要地位,因为...
4.安装的时候一定要先安装erlang,因为RabbitMQ是由erlang语言开发的。 (1)安装erlang 1.以管理员身份安装erlang 2.添加完成后,然后再在用户变量PATH中添加上%ERLANG_HOME%\bin,这样在命令行窗口下就可以在任意...
第一部分介绍Erlang语言的基础知识,包括其语法特性、并发模型和错误处理策略。读者将了解Erlang的模式匹配、函数式编程概念以及如何利用轻量级进程进行并发编程。第二部分深入探讨OTP,讲解其设计原则和组件,如...