# typed array 扩展函数
typed_array是一个单一类型的动态数组,里面只能放相同类型的元素。
typed_array 有以下属性:
- data 缓冲区的指针
- size 元素的个数
- capacity 元素的最大个数
- size_in_bytes 元素的个数 * 元素的大小
- capacity_in_bytes 元素的最大个数 * 元素的大小
# 1.typed_array_create
创建 typed_array 对象。
# 原型
typed_array_create(type, capacity) => object
type 参数为字符串,可选取值如下:
- i8 表示 int8。
- i16 表示 int16。
- i32 表示 int32。
- i64 表示 int64。
- u8 表示 uint8。
- u16 表示 uint16。
- u32 表示 uint32。
- u64 表示 uint64。
- f32 表示 float32。
- float 表示 double。
- 其它或默认为int32。
# 示例
var a = typed_array_create("i8", s10);
# 2.typed_array_push
追加一个或多个数据。
# 原型
typed_array_push(array, v, ...) => uint32_t
返回写入数据的个数
# 示例
var a = typed_array_create("i32", 3);
typed_array_push(a, 1, 2, 3);
# 3.typed_array_pop
弹出最后一个元素
# 原型
typed_array_pop(array) => value
# 示例
var a = typed_array_create("i32", 3);
typed_array_push(a, 1, 2, 3);
print(typed_array_pop(a));
# 4.typed_array_get
获取指定位置的元素
# 原型
typed_array_get(array, index) => value
# 示例
var a = typed_array_create("i32", 3);
typed_array_push(a, 1, 2, 3);
print(typed_array_get(a, 1));
# 5.typed_array_set
修改指定位置的元素
# 原型
typed_array_set(array, index, value) => bool
# 示例
var a = typed_array_create("i32", 3);
typed_array_push(a, 1, 2, 3);
typed_array_set(a, 1, 4);
# 6.typed_array_insert
插入元素到指定位置
# 原型
typed_array_insert(array, index, value) => bool
# 示例
var a = typed_array_create("i32", 3);
typed_array_push(a, 1, 2, 3);
typed_array_insert(a, 1, 4);
# 7.typed_array_remove
删除指定位置的元素
# 原型
typed_array_remove(array, index) => bool
# 示例
var a = typed_array_create("i32", 3);
typed_array_push(a, 1, 2, 3);
typed_array_remove(a, 1);
# 8.typed_array_clear
删除全部元素
# 原型
typed_array_clear(array) => bool
# 示例
var a = typed_array_create("i32", 3);
typed_array_push(a, 1, 2, 3);
typed_array_clear(a);
# 9.typed_array_join
连接全部元素成一个字符串。
# 原型
typed_array_join(array, sep) => str
# 示例
var a = typed_array_create("i32", 3);
typed_array_push(a, 1, 2, 3);
print(typed_array_join(a, ","));
# 更多示例
var a=typed_array_create("i32", 10)
assert(typed_array_push(a, 1) == 1)
assert(a.size, 1);
assert(a.bytes, 4);
assert(typed_array_push(a, 2, 3) == 2)
assert(a.size, 3);
assert(a.bytes, 12);
assert(typed_array_get(a, 0)==1)
assert(typed_array_get(a, 1)==2)
assert(typed_array_get(a, 2)==3)
assert(typed_array_set(a, 0, 11))
assert(typed_array_set(a, 1, 22))
assert(typed_array_set(a, 2, 33))
assert(typed_array_get(a, 0)==11)
assert(typed_array_get(a, 1)==22)
assert(typed_array_get(a, 2)==33)
assert(typed_array_pop(a), 33);
assert(typed_array_pop(a), 22);
assert(typed_array_pop(a), 11);
assert(a.size == 0);
assert(typed_array_push(a,1, 2, 3) == 3)
assert(typed_array_remove(a, 0))
assert(a.size == 2);
assert(typed_array_remove(a, 1))
assert(typed_array_remove(a, 0))
assert(a.size == 0);
assert(typed_array_push(a,1, 2, 3) == 3)
print(typed_array_join(a, ',') == '1,2,3')
unset(a);
← 字符串扩展函数 value 扩展函数 →