数据类型回顾
基础数据类型:
int、 float、 atom、 ref、 fun、 port、 pid、 binary
符合数据类型:
tuple、list、map
语法糖:
string、record
数据类型的内部实现
Eterm, 64位,字
4种大类型:
Header
描述非直接数的数据类型, 一般与Boxed共同使用
立即数
用一个字表示的数据
列表
指向List第一个节点的指针或者立即数NIL. 节点包含CAR和CDR,CDR是指向想一个节点或者NIL的指针。 CAR是一个Eterm,可以是List,立即数或者二进制。erts_debug:size("PHI") =:= 6
Boxed对象
指向Header的指针
Binary
Heap binary: <<"0123456789ABCDEF">>
创建于进程堆, 小于64字节,跨进程值传递
Refc Binary
创建于共享堆,大于64字节,跨进程引用传递
Sub Binary
是Erlang为了优化binary分割而产生的