• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Class (ArrayBuffer)
2<!--Kit: ArkTS-->
3<!--Subsystem: CommonLibrary-->
4<!--Owner: @lijiamin2025-->
5<!--Designer: @weng-changcheng-->
6<!--Tester: @kirl75; @zsw_zhushiwei-->
7<!--Adviser: @ge-yafang-->
8> **说明:**
9>
10> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
11>
12> 此模块仅支持在ArkTS文件(文件后缀为.ets)中导入使用。
13
14ArkTS TypedArray([Int8Array](arkts-apis-arkts-collections-Int8Array.md)、[Uint8Array](arkts-apis-arkts-collections-Uint8Array.md)、[Int16Array](arkts-apis-arkts-collections-Int16Array.md)、[Uint16Array](arkts-apis-arkts-collections-Uint16Array.md)、[Int32Array](arkts-apis-arkts-collections-Int32Array.md)、[Uint32Array](arkts-apis-arkts-collections-Uint32Array.md)、[Uint8ClampedArray](arkts-apis-arkts-collections-Uint8ClampedArray.md)、[Float32Array](arkts-apis-arkts-collections-Float32Array.md))的底层数据结构。
15
16**装饰器类型:**\@Sendable
17
18## 导入模块
19
20```ts
21import { collections } from '@kit.ArkTS';
22```
23
24## 属性
25
26**系统能力:** SystemCapability.Utils.Lang
27
28**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
29
30| 名称   | 类型   | 只读 | 可选 | 说明              |
31| ------ | ------ | ---- | ---- | ----------------|
32| byteLength | number | 是   | 否   | buffer所占的字节数。|
33
34## constructor
35constructor(byteLength: number)
36
37构造函数,用于创建一个指定长度的ArkTS ArrayBuffer对象。
38
39**系统能力:** SystemCapability.Utils.Lang
40
41**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
42
43**参数:**
44
45| 参数名 | 类型   | 必填 | 说明                       |
46| ------ | ------ | ---- | -------------------------|
47| byteLength  | number | 是   | buffer所占的字节数, 最大值不能超过2147483647。     |
48
49**错误码:**
50
51以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
52
53| 错误码ID | 错误信息                                                |
54| -------- | ------------------------------------------------------- |
55| 401      | Parameter error.                                          |
56| 10200012 | The ArrayBuffer's constructor cannot be directly invoked. |
57
58**示例:**
59
60```ts
61let arrayBuffer: collections.ArrayBuffer = new collections.ArrayBuffer(10);
62console.info("byteLength: " + arrayBuffer.byteLength); // byteLength: 10
63```
64
65## slice
66slice(begin: number, end?: number): ArrayBuffer
67
68返回一个新的ArkTS ArrayBuffer对象,其包含原ArkTS ArrayBuffer指定范围的内容。
69
70**系统能力:** SystemCapability.Utils.Lang
71
72**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
73
74**参数:**
75
76| 参数名 | 类型   | 必填 | 说明                                              |
77| ------ | ------ | ---- | ------------------------------------------------ |
78| begin  | number | 是   | 开始索引,如果`begin < 0`,则会从`begin + arrayBuffer.byteLength`位置开始。 |
79| end    | number | 否   | 结束索引(不包括该元素),如果`end < 0`,则会到`end + arrayBuffer.byteLength`位置结束。默认为原ArkTS ArrayBuffer的长度。|
80
81**返回值:**
82
83| 类型         | 说明      |
84| ------------ | --------- |
85| ArrayBuffer | 新的ArkTS ArrayBuffer对象。 |
86
87**错误码:**
88
89以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
90
91| 错误码ID |                    错误信息                   |
92| -------- | -------------------------------------------- |
93| 401      | Parameter error.                             |
94| 10200011 | The slice method cannot be bound.            |
95| 10200201 | Concurrent modification error.               |
96
97**示例:**
98
99```ts
100let arrayBuffer: collections.ArrayBuffer = new collections.ArrayBuffer(10);
101let slicedBuffer: collections.ArrayBuffer = arrayBuffer.slice(0, 4);
102console.info("byteLength: " + slicedBuffer.byteLength); // byteLength: 4
103```
104