Erlang中的数据类型有:
数值(整数、浮点数);
二进制数据;
原子;
元组;
列表(及字符串);
唯一标识符(Pid、端口、引用);
Fun函数。
此处重点说一下二进制数据,因为在客户端和服务器的交互中,都会用到二进制数据,以及从接收到的二进制数据串中提取出所需的数据,然后再以二进制的格式保存到数据库。客户端需要查询的时候,再从服务器取出保存的二进制数据,回发给客户端。
测试如下:
首先构造一个二进制数据N,它包含2个字符串序列,第一个字符串长度是4字节,第二个字符串长度6字节。N可模拟服务器从客户端接收到的数据。
第二步,从N中提取出前64位(8字节)数据,将其匹配给N1。
显示N1,是个数值:17186226274。
第三步,将N1再转变回二进制,需要用到尖括号,同时需要指明此二进制数据的长度,此处是64位。B1即可被作为二进制数据写入数据库保存。
显示B1,已经成功地将从N中提取出的数据再次转变成二进制格式。
如果在最后一个匹配项,不指明长度,直接用/binary选项匹配剩下的所有数据,则匹配的变量保存的已经是二进制数据,不需要再另行转换了。
测试代码: