gpt4 book ai didi

erlang - 二进制字符串和普通列表的区别

转载 作者:行者123 更新时间:2023-12-01 07:36:59 24 4
gpt4 key购买 nike

我是 erlang 的新手,在 erlang shell 中,我输入了以下表达式:

A= <<"abc">>.
B="abc".

我想知道 A之间的区别和 B ,以及它们的一般用法,
还有为什么下面的表达式不正确:
C=<<abc>>.

最佳答案

A= <<"abc">>是一个二进制。二进制是 Erlang 中的一种数据类型。位语法在 << 和 >> 之间包含二进制数据。在这种情况下,位序列。所以这里的二进制是内存中 97,98,99(十进制)的 3、8 位值。 Erlang 在处理二进制数据方面非常强大。由于这是内置的,因此非常高效,并且有许多函数可以处理二进制操作。
B="abc"是第一个字符串表示。 Erlang 中没有单独的数据类型字符串。 Erlang 中的字符串只是带有一些语法糖的字符列表(列表为用引号括起来的文本)。
所以它与B=[$a,$b,$c].相同因此,它是一个整数列表(至少 32 位 + 指向下一个的指针),其他语言中每个字符 8/16 位。虽然它可以处理 unicode,但对于大字符串效率较低。

abc 是一个原子,不能在二进制内部(除非转换)。所以C=<<abc>>.是不正确的。

关于erlang - 二进制字符串和普通列表的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30056360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com