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