integers, floats: 除传统数值表示,有两种 erlang 独特的表示方法:
$char : 表示 char 的ascii码或 unicode 码数值;
base#value : base 为进制(2~36),比如 2#1101, 8#15, 16#d 为相同数值;
Atom : 表示字符数字组成的名称常量,如果有空格,@等特殊字符或非小写字母开头,则要使用单引号扩起来,如 phone_number,'Month','phone number'
;
bit strings : 用来表示还没区分类型的内存存储数值(有点像 nodejs 的 Buffer):
«10,20»
,
具体示例
reference : 引用,由 make_ref/0
返回;
Fun : 函数对象Fun1 = fun (X) → X+1 end.
Fun1(2)
;
Port Identifier : erlang port, 由
open_port/2
返回,
详解
pid : erlang process(不同于一般进程的概念)的标识,由spawn/1,2,3,4
spawn_link/1,2,3,4
spawn_opt/4
返回
Tuple: P = {Term1,…,TermN}
, element(i,P)
, P2 = setelement(i,P,value)
, tuple_size(P)
;
Map: #{Key1⇒Value1,…,KeyN⇒ValueN}
,maps:get(key,map)
,map2 = maps:update(key,map)
, map_size(map)
List: [Term1,…,TermN]
, [head|tail]
String: 双引号扩起来的字符串,本质上算 List; 两个字串会被自动连接,比如“hello”“world”
等价于“helloworld”
Record: 类似 C 语言的 struct;
true,false: 来表示 boolean
类型转换:atom_to_list
,list_to_atom
,tuple_to_list
,list_to_tuple
等等。