7. 数组或列表对象API


7.1 创建数组或列表对象

  1. /**
  2. * @brief 创建数组、列表
  3. * @param e,虚拟机参数
  4. * @param type,类型 GC_LIST或者GC_TUPLE(python专有)
  5. * @param count,长度
  6. * @return 数组、列表对象
  7. */
  8. evm_val_t * evm_list_create(evm_t * e, int type, uint16_t len);

7.2 数组对象增加内容

  1. /**
  2. * @brief 数组对象增加内容
  3. * @param e,虚拟机参数
  4. * @param o,数组对象
  5. * @param len,增加长度
  6. * @param v,内容
  7. * @return 错误码
  8. */
  9. evm_err_t evm_list_push(evm_t * e, evm_val_t * o, int len, evm_val_t *v);

7.3 数组删除最后一个内容,并返回该内容

  1. /**
  2. * @brief 数组删除最后一个内容,并返回该内容
  3. * @param e,虚拟机
  4. * @param o,数组对象
  5. * @return 被删除的内容,若删除失败,则返回undefined
  6. */
  7. evm_val_t *evm_list_pop(evm_t * e, evm_val_t * o);

7.4 获取数组长度

  1. /**
  2. * @brief 获取数组长度
  3. * @param o,数组对象
  4. * @return 数组长度
  5. */
  6. int evm_list_len(evm_val_t * o);

7.5 数组设置指定index元素的值

  1. /**
  2. * @brief 数组设置
  3. * @param e,虚拟机参数
  4. * @param o,数组对象
  5. * @param index,索引
  6. * @param v,值
  7. * @return 错误码
  8. */
  9. evm_err_t evm_list_set(evm_t * e, evm_val_t * o, uint32_t index, evm_val_t v);

7.6 数组获取指定index元素内容

  1. /**
  2. * @brief 数组获取内容
  3. * @param e,虚拟机参数
  4. * @param o,数组对象
  5. * @param index,索引
  6. * @return 错误码
  7. */
  8. evm_val_t * evm_list_get(evm_t * e, evm_val_t * o, uint32_t index);