模块说明
实用可扩展的数组。
数组描述
- 数组可以随需要固定大小或者自动增长。未设置的条目有默认值。
- 数组开始下标为0,和其他erlang数据结构(比如元组)不同。
- 除非创建数组的时候指定默认值,否则默认为原子undefined。数组无法区分默认值和设置值一样的情况,因此需要避免。
- 数组不会自动收缩;索引I设置了值后,则[0,I]范围都可以访问,除非调用了resize/2
- 超出固化数组范围的操作都会以badarg fail
- 不合法的参数也会badarg fail,比如索引不是非负整数,函数不符合要求
导出函数
- default(数组) :返回数组默认值
- fix(数组) : 固化数组
- foldl( 函数(索引,值),归集初始化, 数组) : 从0到size(数组)-1 归集,返回归集
- foldr: 参见foldl ,反向归集
- from_list(列表) :从列表转数组,默认值undefined
- from_list(列表,默认值) : 参见上
- from_orddict(列表) : 从有序列表转化,列表为{索引,值}组成的有序列表,默认值undefined
- from_orddict(列表,默认值) : 参见上
- get(索引,数组) :获取索引的值
- is_array(数组) : 判断是否数组,浅判断,简单的根据头部?
- is_fix(数组) :是否固化
- map(函数,数组) : 函数(索引,值) 返回新值, map 返回新数组
- new() : 创建初始大小为0的非固化数组,默认值undefined
- new(选项参数) : 创建指定选项参数的数组, 选项参数为单个选项或者选项列表,选项列表中最后的覆盖前面的
- new(大小,选项参数) : 参上,把大小单独列出,大小可能被选项参数覆盖。指定大小会固化,除非被选项参数{fixed,false}覆盖。
- relax(数组) : 返回取消固化后的新数组
- reset(索引,数组) : 重置数组索引项为默认值,如果索引项刚好为默认值,则原封返回,否则返回新数组
- resize(数组) :根据sparse_size/1 返回调整size后的新数组,继承固化属性
- resize(size,数组) : 调整数组到 size大小, 继承固化属性。 不知道用来干什么?会回收资源?
- set(索引,新值,数组) : 设置数组,返回新数组
- size(数组) :获取数组大小
- sparse_foldl/3 : 参见 foldl ,只是跳过默认值的项
- sparse_foldr/3 : 参见foldr , 只是跳过默认值的项
- sparse_size(数组) : 返回从0到最后非默认值区间的大小
- sparse_to_list(数组) :转为列表,跳过默认值项
- sparse_to_orddict(数组) :转为{索引,值}的有序列表,跳过默认值项
- to_list(数组) :转为列表
- to_orddict(数组) : 转为{索引,值}的有序列表