Erlang中的长度
程序员文章站
2022-04-01 12:02:12
...
Erlang中的长度
by cnDenis http://cndenis.iteye.com 2013年4月27日
值得吐槽的是居然连求长度这么基础的方法,Erlang都没有统一起来。 分为len和size两大对立阵营:
len阵营
- 列表(字符串是列表的一种)的长度用
length/1
或string:len/1
。 别看后面那个打着string开头,对于不是字符串的列表也照用不误, 从源代码看其实就是前一个的马甲。 - queue模块是len阵营的,使用
queue:len/1
。
size阵营
- 二进制串的长度用
size/1
,或是用byte_size/1
和bit_size/1
也行,分别是 比特长度和位长度,1byte = 8bit。 - 元组的长度也用
size/1
,等于其元素的个数。元组的比特长度和位长度不可用。 - dict,sets,orddict,ordsets,array这几个模块也是size阵营的,使用其各自模块 下的size函数。
- ets比较特别,使用
ets:info(Tab, size)
来获取长度,Tab是表的id,或是已注册的表的名字。
另外,特立独行的“原子”没有长度。