我是erlang的新手,在erlang shell中,我输入了以下表达式:
A= <<"abc">>.
B="abc".
我想知道A
和B
之间的差异及其一般用法,
也就是为什么下面的表达不正确:
C=<<abc>>.
答案 0 :(得分:10)
A= <<"abc">>
是二进制文件。二进制是Erlang中的数据类型。位语法将二进制数据包含在&lt;&lt;&lt;和&gt;&gt;。在这种情况下,比特序列。所以这里的二进制是内存中的3,8位值97,98,99(十进制)。 Erlang在处理二进制数据方面非常强大。由于这是内置的,它非常有效,并且有许多函数可以处理二进制操作。
B="abc"
是字符串表示。 Erlang中没有单独的数据类型字符串。 Erlang中的字符串只是具有一些语法糖的字符列表(列表作为引号内的文本)。
因此它与B=[$a,$b,$c].
相同因此它是一个整数列表(至少32位+指向下一个的指针)在其他语言中每个字符8/16位的整数。虽然它可以处理unicode但它对大字符串的效果较差。
abc是一个原子,不能在二进制内部(除非转换)。所以C=<<abc>>.
不正确。