【发布时间】:2015-05-05 14:52:05
【问题描述】:
我是 erlang 新手,在 erlang shell 中,我输入了以下表达式:
A= <<"abc">>.
B="abc".
我想知道A和B之间的区别,以及它们的一般用法,
还有为什么下面的表达式不正确:
C=<<abc>>.
【问题讨论】:
标签: erlang
我是 erlang 新手,在 erlang shell 中,我输入了以下表达式:
A= <<"abc">>.
B="abc".
我想知道A和B之间的区别,以及它们的一般用法,
还有为什么下面的表达式不正确:
C=<<abc>>.
【问题讨论】:
标签: erlang
A= <<"abc">> 是一个二进制文件。二进制是 Erlang 中的一种数据类型。位语法在 > 之间包含二进制数据。在这种情况下,位序列。所以这里的二进制是内存中的 3、8 位值 97、98、99(十进制)。 Erlang 在处理二进制数据方面非常强大。由于它是内置的,因此非常高效,并且有很多函数可以处理二进制操作。
B="abc" 是字符串表示。 Erlang 中没有单独的数据类型字符串。 Erlang 中的字符串只是带有一些语法糖的字符列表(列表为用引号括起来的文本)。
所以它与B=[$a,$b,$c]. 相同,因此它是一个整数列表(至少 32 位 + 指向下一个的指针)而不是其他语言中每个字符 8/16 位。虽然它可以处理 unicode,但对于大字符串来说效率较低。
abc 是一个原子,不能在二进制内部(除非转换)。所以C=<<abc>>. 不正确。
【讨论】: