- Erlang是一门函数式编程语言,具有不可变状态
- Erlang的变量是一次性赋值变量(single-assignment variable)
- 在Erlang里,变量的获得值是一次成功模式匹配操作的结果,=是一个模式匹配操作符
- 在Erlang里,原子被用于表示常量值,原子是全局性的,以小写字母开头,还可以放在单引号内,一个原子的值就是它本身
- 元组用于把一些数量固定的项目归组成单一的实体,用大括号括起,元组会在声明时自动创建,不再使用时则被销毁
- 对于不感兴趣的变量,可以用_ 作为占位符,符号_被称为匿名变量
- 列表用于存放任意数量的元素,用中括号括起,列表的第一个元素称为列表头,剩下的称为列表尾
- Erlang中没有字符串,在Erlang中字符串被表示为一个由整数组成的列表或者一个二进制型,当字符串表示为一个整数列表时,列表里的每个元素都代表了一个Unicode代码点。可以用字符串字面量来创建这样一个列表,字符串字面量是用双引号围起来的一串字符。当shell打印某个列表的值时,只有当列表中所有整数都代表可打印字符才打印字符串字面量。
- f()命令让shell忘记现有所有绑定
- 模块和函数是构建顺序与并行程序的基本单元,模块包含了函数,而函数可以顺序或并行运行
- -module(module_name)是模块声明,位于文件第一行,module_name必须与存放该模块的主文件名相同
- export([func_name/1])是导出声明,Name/N这种记法是指一个带有N个参数的函数Name,N被称为函数的元数(arity),export的参数是由Name/N组成的一个列表,未导出的函数只能在模块内调用(相当于私有方法)
- 逗号分隔函数调用,数据构造和模式中的参数
- 分号分隔子句,例如函数定义,以及case,if,try…catch,和receive表达式
- 句号分隔函数整体,以及shell里的表达式
- Erlang中用于代表函数的数据类型被称为fun,操作其他函数的函数被称为高阶函数(higher-order function)
- Erlang没有单独的布尔值类型,不过原子true和false具有特殊的意义,可以用来表示布尔值,可用的布尔表达式有四种:not, and, or, xor
- 从R16B版开始,Erlang源代码文件都假定才用UTF-8字符集编码
- Erlang中的数字不是整数就是浮点数,K进制整数使用K#Digits这种写法
- 短路求值:orelse andalso
- type用于类型定义, 如预定义的类型别名:-type term() :: any(). -type term() :: true | false. -type byte() :: 0..255. -type list() :: [any()].
- 在Erlang里创建和销毁进程是非常快速的,进程间发送消息是非常快速的,可以拥有大量进程,进程不共享任何内存,完全独立,唯一的交互方式是消息传递
时间: 2024-10-03 17:36:16