array

模块说明

实用可扩展的数组。

数组描述

  • 数组可以随需要固定大小或者自动增长。未设置的条目有默认值。
  • 数组开始下标为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(数组)  : 转为{索引,值}的有序列表
原文地址:https://www.cnblogs.com/rubyist/p/erlang_stdlib_array.html