• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.util (util工具函数)
2
3该模块主要提供常用的工具函数,实现字符串编解码([TextEncoder](#textencoder),[TextDecoder](#textdecoder))、有理数运算([RationalNumber<sup>8+</sup>](#rationalnumber8))、缓冲区管理([LRUCache<sup>9+</sup>](#lrucache9))、范围判断([ScopeHelper<sup>9+</sup>](#scopehelper9))、Base64编解码([Base64Helper<sup>9+</sup>](#base64helper9))、内置对象类型检查([types<sup>8+</sup>](#types8))等功能。
4
5> **说明:**
6>
7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9
10## 导入模块
11
12```ts
13import util from '@ohos.util';
14```
15
16## util.format<sup>9+</sup>
17
18format(format: string,  ...args: Object[]): string
19
20通过式样化字符串对输入的内容按特定格式输出。
21
22**系统能力:** SystemCapability.Utils.Lang
23
24**参数:**
25
26| 参数名  | 类型     | 必填 | 说明           |
27| ------- | -------- | ---- | -------------- |
28| format  | string   | 是   | 格式化字符串,可以包含零个或多个占位符,用于指定要插入的参数的位置和格式。 |
29| ...args | Object[] | 否   | 替换format参数中占位符的数据,此参数缺失时,默认返回第一个参数。|
30
31**返回值:**
32
33| 类型   | 说明              |
34| ------ | -----------------|
35| string | 格式化后的字符串。 |
36
37
38**格式说明符:**
39
40| 格式说明符 | 说明                          |
41| ------ | -------------------------------- |
42| %s     | 将参数转换为字符串,用于除Object,BigInt和-0之外的所有值。|
43| %d     | 将参数作为十进制整数进行格式化输出,用于除Symbol和BigInt之外的所有值。|
44| %i     | 将字符串转换为十进制整数,用于除BigInt和Symbol之外的所有值。|
45| %f     | 将字符串转换为浮点数,用于除Bigint和Symbol之外的所有值。|
46| %j     | 将JavaScript对象转换为JSON字符串进行格式化输出。|
47| %o     | 用于将JavaScript对象进行格式化输出,将对象转换为字符串表示,但不包含对象的原型链信息。|
48| %O     | 用于将JavaScript对象进行格式化输出,将对象转换为字符串表示。|
49| %c     | 只在浏览器环境中有效。其余环境不会产生样式效果。|
50| %%     | 转义百分号的特殊格式化占位符。|
51
52**示例:**
53
54```ts
55let name = 'John';
56let age = 20;
57let formattedString = util.format('My name is %s and I am %s years old', name, age);
58console.log(formattedString);
59// 输出结果:My name is John and I am 20 years old
60let num = 10.5;
61formattedString = util.format('The number is %d', num);
62console.log(formattedString);
63// 输出结果:The number is 10.5
64num = 100.5;
65formattedString = util.format('The number is %i', num);
66console.log(formattedString);
67// 输出结果:The number is 100
68const pi = 3.141592653;
69formattedString = util.format('The value of pi is %f', pi);
70console.log(formattedString);
71// 输出结果:The value of pi is 3.141592653
72const obj = { name: 'John', age: 20 };
73formattedString = util.format('The object is %j', obj);
74console.log(formattedString);
75// 输出结果:The object is {"name":"John","age":20}
76const person = {
77  name: 'John',
78  age: 20,
79  address: {
80    city: 'New York',
81    country: 'USA'
82  }
83};
84console.log(util.format('Formatted object using %%O: %O', person));
85console.log(util.format('Formatted object using %%o: %o', person));
86/*
87输出结果:
88Formatted object using %O: { name: 'John',
89  age: 20,
90  address:
91  { city: 'New York',
92    country: 'USA' } }
93Formatted object using %o: { name: 'John',
94  age: 20,
95  address:
96  { city: 'New York',
97    country: 'USA' } }
98*/
99const percentage = 80;
100let arg = 'homework';
101formattedString = util.format('John finished %d%% of the %s', percentage, arg);
102console.log(formattedString);
103// 输出结果:John finished 80% of the homework
104```
105
106## util.errnoToString<sup>9+</sup>
107
108errnoToString(errno: number): string
109
110获取系统错误码对应的详细信息。
111
112**系统能力:** SystemCapability.Utils.Lang
113
114**参数:**
115
116| 参数名 | 类型   | 必填 | 说明                       |
117| ------ | ------ | ---- | -------------------------- |
118| errno  | number | 是   | 系统发生错误产生的错误码。 |
119
120**返回值:**
121
122| 类型   | 说明                   |
123| ------ | ---------------------- |
124| string | 错误码对应的详细信息。 |
125
126**示例:**
127
128```ts
129let errnum = -1; // -1 : a system error number
130let result = util.errnoToString(errnum);
131console.log("result = " + result);
132```
133
134**部分错误码及信息示例:**
135
136| 错误码 | 信息                              |
137| ------ | -------------------------------- |
138| -1     | operation not permitted          |
139| -2     | no such file or directory        |
140| -3     | no such process                  |
141| -4     | interrupted system call          |
142| -5     | i/o error                        |
143| -11    | resource temporarily unavailable |
144| -12    | not enough memory                |
145| -13    | permission denied                |
146| -100   | network is down                  |
147
148## util.callbackWrapper
149
150callbackWrapper(original: Function): (err: Object, value: Object )=&gt;void
151
152对异步函数进行回调化处理,回调中第一个参数将是拒绝原因(如果 Promise 已解决,则为 null),第二个参数将是已解决的值。
153
154**系统能力:** SystemCapability.Utils.Lang
155
156**参数:**
157
158| 参数名 | 类型 | 必填 | 说明 |
159| -------- | -------- | -------- | -------- |
160| original | Function | 是 | 异步函数。 |
161
162**返回值:**
163
164| 类型 | 说明 |
165| -------- | -------- |
166| Function | 返回一个回调函数,该函数第一个参数err是拒绝原因(如果&nbsp;Promise&nbsp;已解决,则为&nbsp;null),第二个参数value是已解决的值。 |
167
168**示例:**
169
170```ts
171async function fn() {
172  return 'hello world';
173}
174let cb = util.callbackWrapper(fn);
175cb(1, (err : Object, ret : string) => {
176  if (err) throw new Error;
177  console.log(ret);
178});
179```
180
181## util.promisify<sup>9+</sup>
182
183promisify(original: (err: Object, value: Object) =&gt; void): Function
184
185对异步函数处理并返回一个promise的函数。
186
187**系统能力:** SystemCapability.Utils.Lang
188
189**参数:**
190
191| 参数名 | 类型 | 必填 | 说明 |
192| -------- | -------- | -------- | -------- |
193| original | Function | 是 | 回调函数中第一个参数err是拒绝原因(如果&nbsp;Promise&nbsp;已解决,则为&nbsp;null),第二个参数value是已解决的值。  |
194
195**返回值:**
196
197| 类型 | 说明 |
198| -------- | -------- |
199| Function | 返回一个&nbsp;Promise&nbsp;的函数。 |
200
201**示例:**
202
203```ts
204async function fn() {
205  return 'hello world';
206}
207const addCall = util.promisify(util.callbackWrapper(fn));
208(async () => {
209  try {
210    let res: string = await addCall();
211    console.log(res);
212  } catch (err) {
213    console.log(err);
214  }
215})();
216```
217
218## util.generateRandomUUID<sup>9+</sup>
219
220generateRandomUUID(entropyCache?: boolean): string
221
222使用加密安全随机数生成器生成随机的RFC 4122版本4的string类型UUID。
223
224**系统能力:** SystemCapability.Utils.Lang
225
226**参数:**
227
228| 参数名 | 类型 | 必填 | 说明 |
229| -------- | -------- | -------- | -------- |
230| entropyCache | boolean | 否 | 是否使用已缓存的UUID, 默认true。 |
231
232**返回值:**
233
234| 类型 | 说明 |
235| -------- | -------- |
236| string | 表示此UUID的字符串。 |
237
238**示例:**
239
240```ts
241let uuid = util.generateRandomUUID(true);
242console.log("RFC 4122 Version 4 UUID:" + uuid);
243// 输出随机生成的UUID
244```
245
246## util.generateRandomBinaryUUID<sup>9+</sup>
247
248generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array
249
250使用加密安全随机数生成器生成随机的RFC 4122版本4的Uint8Array类型UUID。
251
252**系统能力:** SystemCapability.Utils.Lang
253
254**参数:**
255
256| 参数名 | 类型 | 必填 | 说明 |
257| -------- | -------- | -------- | -------- |
258| entropyCache | boolean | 否 | 是否使用已缓存的UUID, 默认true。 |
259
260**返回值:**
261
262| 类型 | 说明 |
263| -------- | -------- |
264| Uint8Array | 表示此UUID的Uint8Array值。 |
265
266**示例:**
267
268```ts
269let uuid = util.generateRandomBinaryUUID(true);
270console.log(JSON.stringify(uuid));
271// 输出:
272// 138,188,43,243,62,254,70,119,130,20,235,222,199,164,140,150
273```
274
275## util.parseUUID<sup>9+</sup>
276
277parseUUID(uuid: string): Uint8Array
278
279将generateRandomUUID生成的string类型UUID转换为generateRandomBinaryUUID生成的Uint8Array类型UUID,如RFC 4122版本4中所述。
280
281**系统能力:** SystemCapability.Utils.Lang
282
283**参数:**
284
285| 参数名 | 类型 | 必填 | 说明 |
286| -------- | -------- | -------- | -------- |
287| uuid | string | 是 | UUID字符串。 |
288
289**返回值:**
290
291| 类型 | 说明 |
292| -------- | -------- |
293| Uint8Array | 返回表示此UUID的Uint8Array,如果解析失败,则抛出SyntaxError。 |
294
295**示例:**
296
297```ts
298let uuid = util.parseUUID("84bdf796-66cc-4655-9b89-d6218d100f9c");
299console.log(JSON.stringify(uuid));
300// 输出:
301// 132,189,247,150,102,204,70,85,155,137,214,33,141,16,15,156
302```
303
304## util.printf<sup>(deprecated)</sup>
305
306printf(format: string,  ...args: Object[]): string
307
308通过式样化字符串对输入的内容按特定格式输出。
309
310> **说明:**
311>
312> 从API version 7开始支持,从API version 9开始废弃,建议使用[util.format<sup>9+</sup>](#utilformat9)替代。
313
314**系统能力:** SystemCapability.Utils.Lang
315
316**参数:**
317
318| 参数名 | 类型 | 必填 | 说明 |
319| -------- | -------- | -------- | -------- |
320| format | string | 是 | 式样化字符串。 |
321| ...args | Object[] | 否 | 替换式样化字符串通配符的数据,此参数缺失时,默认返回第一个参数。 |
322
323**返回值:**
324
325| 类型 | 说明 |
326| -------- | -------- |
327| string | 按特定格式式样化后的字符串。 |
328
329**示例:**
330
331```ts
332let res = util.printf("%s", "hello world!");
333console.log(res);
334```
335
336
337## util.getErrorString<sup>(deprecated)</sup>
338
339getErrorString(errno: number): string
340
341获取系统错误码对应的详细信息。
342
343> **说明:**
344>
345> 从API version 7开始支持,从API version 9开始废弃,建议使用[util.errnoToString<sup>9+</sup>](#utilerrnotostring9)替代。
346
347**系统能力:** SystemCapability.Utils.Lang
348
349**参数:**
350
351| 参数名 | 类型 | 必填 | 说明 |
352| -------- | -------- | -------- | -------- |
353| errno | number | 是 | 系统发生错误产生的错误码。 |
354
355**返回值:**
356
357| 类型 | 说明 |
358| -------- | -------- |
359| string | 错误码对应的详细信息。 |
360
361**示例:**
362
363```ts
364let errnum = -1; // -1 : a system error number
365let result = util.getErrorString(errnum);
366console.log("result = " + result);
367```
368
369## util.promiseWrapper<sup>(deprecated)</sup>
370
371promiseWrapper(original: (err: Object, value: Object) =&gt; void): Object
372
373对异步函数处理并返回一个promise的版本。
374
375> **说明:**
376>
377> 此接口不可用,建议使用[util.promisify<sup>9+</sup>](#utilpromisify9)替代。
378
379**系统能力:** SystemCapability.Utils.Lang
380
381**参数:**
382
383| 参数名 | 类型 | 必填 | 说明 |
384| -------- | -------- | -------- | -------- |
385| original | Function | 是 | 异步函数。 |
386
387**返回值:**
388
389| 类型 | 说明 |
390| -------- | -------- |
391| Function | 采用遵循常见的错误优先的回调风格的函数(也就是将&nbsp;(err,&nbsp;value)&nbsp;=&gt;&nbsp;...&nbsp;回调作为最后一个参数),并返回一个返回&nbsp;promise&nbsp;的版本。 |
392
393
394## TextDecoder
395
396TextDecoder用于将字节数组解码为字符串,可以处理多种编码格式,包括utf-8、utf-16le/be、iso-8859和windows-1251等不同的编码格式。
397
398### 属性
399
400**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang401
402| 名称 | 类型 | 可读 | 可写 | 说明 |
403| -------- | -------- | -------- | -------- | -------- |
404| encoding | string | 是 | 否 | 编码格式。<br/>-&nbsp;支持格式:utf-8、ibm866、iso-8859-2、iso-8859-3、iso-8859-4、iso-8859-5、iso-8859-6、iso-8859-7、iso-8859-8、iso-8859-8-i、iso-8859-10、iso-8859-13、iso-8859-14、iso-8859-15、koi8-r、koi8-u、macintosh、windows-874、windows-1250、windows-1251、windows-1252、windows-1253、windows-1254、windows-1255、windows-1256、windows-1257、windows-1258、x-mac-cyrillic、gbk、gb18030、big5、euc-jp、iso-2022-jp、shift_jis、euc-kr、utf-16be、utf-16le。 |
405| fatal | boolean | 是 | 否 | 是否显示致命错误。 |
406| ignoreBOM | boolean | 是 | 否 | 是否忽略BOM(byte&nbsp;order&nbsp;marker)标记,默认值为false&nbsp;,表示解码结果包含BOM标记。 |
407
408### constructor<sup>9+</sup>
409
410constructor()
411
412TextDecoder的构造函数。
413
414**系统能力:** SystemCapability.Utils.Lang
415
416**示例:**
417
418```ts
419let result = new util.TextDecoder();
420let retStr = result.encoding;
421```
422### create<sup>9+</sup>
423
424static create(encoding?: string, options?: { fatal?: boolean; ignoreBOM?: boolean }): TextDecoder
425
426替代有参构造功能。
427
428**系统能力:** SystemCapability.Utils.Lang
429
430**参数:**
431
432| 参数名   | 类型   | 必填 | 说明                                             |
433| -------- | ------ | ---- | ------------------------------------------------ |
434| encoding | string | 否   | 编码格式,默认值是'utf-8'。                      |
435| options  | object | 否   | 解码相关选项参数,存在两个属性fatal和ignoreBOM。 |
436
437**表1.1**options
438
439| 名称      | 参数类型 | 必填 | 说明               |
440| --------- | -------- | ---- | ------------------ |
441| fatal     | boolean  | 否   | 是否显示致命错误,默认值是false。 |
442| ignoreBOM | boolean  | 否   | 是否忽略BOM标记,默认值是false。  |
443
444**示例:**
445
446```ts
447let result = util.TextDecoder.create('utf-8', { ignoreBOM : true });
448let retStr = result.encoding;
449```
450
451### decodeWithStream<sup>9+</sup>
452
453decodeWithStream(input: Uint8Array, options?: { stream?: boolean }): string
454
455通过输入参数解码后输出对应文本。
456
457**系统能力:** SystemCapability.Utils.Lang
458
459**参数:**
460
461| 参数名 | 类型 | 必填 | 说明 |
462| -------- | -------- | -------- | -------- |
463| input | Uint8Array | 是 | 符合格式需要解码的数组。 |
464| options | object | 否 | 解码相关选项参数。 |
465
466**表2** options
467
468| 名称 | 参数类型 | 必填 | 说明 |
469| -------- | -------- | -------- | -------- |
470| stream | boolean | 否 | 在随后的decodeWithStream()调用中是否跟随附加数据块。如果以块的形式处理数据,则设置为true;如果处理最后的数据块或数据未分块,则设置为false。默认为false。 |
471
472**返回值:**
473
474| 类型 | 说明 |
475| -------- | -------- |
476| string | 解码后的数据。 |
477
478**示例:**
479
480```ts
481let textDecoder = util.TextDecoder.create('utf-8', { ignoreBOM : true });
482let result = new Uint8Array(6);
483result[0] = 0xEF;
484result[1] = 0xBB;
485result[2] = 0xBF;
486result[3] = 0x61;
487result[4] = 0x62;
488result[5] = 0x63;
489console.log("input num:");
490let retStr = textDecoder.decodeWithStream( result , {stream: false});
491console.log("retStr = " + retStr);
492```
493
494### constructor<sup>(deprecated)</sup>
495
496constructor(encoding?: string, options?: { fatal?: boolean; ignoreBOM?: boolean })
497
498TextDecoder的构造函数。
499
500> **说明:**
501>
502> 从API version 7开始支持,从API version 9开始废弃,建议使用[create<sup>9+</sup>](#create9)替代。
503
504**系统能力:** SystemCapability.Utils.Lang
505
506**参数:**
507
508| 参数名 | 类型 | 必填 | 说明 |
509| -------- | -------- | -------- | -------- |
510| encoding | string | 否 | 编码格式,默认值是'utf-8'。 |
511| options | object | 否 | 解码相关选项参数,存在两个属性fatal和ignoreBOM。 |
512
513  **表1** options
514
515| 名称 | 参数类型 | 必填 | 说明 |
516| -------- | -------- | -------- | -------- |
517| fatal | boolean | 否 | 是否显示致命错误,默认值是false。 |
518| ignoreBOM | boolean | 否 | 是否忽略BOM标记,默认值是false。 |
519
520**示例:**
521
522```ts
523let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true});
524```
525
526### decode<sup>(deprecated)</sup>
527
528decode(input: Uint8Array, options?: { stream?: false }): string
529
530通过输入参数解码后输出对应文本。
531
532> **说明:**
533>
534> 从API version 7开始支持,从API version 9开始废弃,建议使用[decodeWithStream<sup>9+</sup>](#decodewithstream9)替代。
535
536**系统能力:** SystemCapability.Utils.Lang
537
538**参数:**
539
540| 参数名 | 类型 | 必填 | 说明 |
541| -------- | -------- | -------- | -------- |
542| input | Uint8Array | 是 | 符合格式需要解码的数组。 |
543| options | object | 否 | 解码相关选项参数。 |
544
545**表2** options
546
547| 名称 | 参数类型 | 必填 | 说明 |
548| -------- | -------- | -------- | -------- |
549| stream | boolean | 否 | 在随后的decode()调用中是否跟随附加数据块。如果以块的形式处理数据,则设置为true;如果处理最后的数据块或数据未分块,则设置为false。默认为false。 |
550
551**返回值:**
552
553| 类型 | 说明 |
554| -------- | -------- |
555| string | 解码后的数据。 |
556
557**示例:**
558
559```ts
560let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true});
561let result = new Uint8Array(6);
562result[0] = 0xEF;
563result[1] = 0xBB;
564result[2] = 0xBF;
565result[3] = 0x61;
566result[4] = 0x62;
567result[5] = 0x63;
568console.log("input num:");
569let retStr = textDecoder.decode( result , {stream: false});
570console.log("retStr = " + retStr);
571```
572
573## TextEncoder
574
575TextEncoder用于将字符串编码为字节数组,支持多种编码格式。
576需要注意的是,在使用TextEncoder进行编码时,不同编码格式下字符所占的字节数是不同的,在使用TextEncoder时需要明确指定要使用的编码格式,以确保编码结果正确。
577
578### 属性
579
580**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang581
582| 名称 | 类型 | 可读 | 可写 | 说明 |
583| -------- | -------- | -------- | -------- | -------- |
584| encoding | string | 是 | 否 | 编码格式,默认值是'utf-8'。 |
585
586
587### constructor
588
589constructor()
590
591TextEncoder的构造函数。
592
593**系统能力:** SystemCapability.Utils.Lang
594
595**示例:**
596
597```ts
598let textEncoder = new util.TextEncoder();
599```
600
601### constructor<sup>9+</sup>
602
603constructor(encoding?: string)
604
605TextEncoder的构造函数。
606
607**系统能力:** SystemCapability.Utils.Lang
608
609**参数:**
610
611| 参数名 | 类型 | 必填 | 说明 |
612| ----- | ---- | ---- | ---- |
613| encoding | string | 否 | 编码格式,默认值为'utf-8'。 |
614
615**示例:**
616
617```ts
618let textEncoder = new util.TextEncoder("utf-8");
619```
620
621### encodeInto<sup>9+</sup>
622
623encodeInto(input?: string): Uint8Array
624
625通过输入参数编码后输出Uint8Array对象。
626
627**系统能力:** SystemCapability.Utils.Lang
628
629**参数:**
630
631| 参数名 | 类型   | 必填 | 说明               |
632| ------ | ------ | ---- | ------------------ |
633| input  | string | 否   | 需要编码的字符串,默认值是空字符串。 |
634
635**返回值:**
636
637| 类型       | 说明               |
638| ---------- | ------------------ |
639| Uint8Array | 返回编码后的Uint8Array对象。 |
640
641**示例:**
642
643```ts
644let textEncoder = new util.TextEncoder();
645let buffer = new ArrayBuffer(20);
646let result = new Uint8Array(buffer);
647result = textEncoder.encodeInto("\uD800¥¥");
648```
649
650### encodeIntoUint8Array<sup>9+</sup>
651
652encodeIntoUint8Array(input: string, dest: Uint8Array): { read: number; written: number }
653
654对字符串进行编码,将结果写入dest数组。
655
656**系统能力:** SystemCapability.Utils.Lang
657
658**参数:**
659
660| 参数名 | 类型       | 必填 | 说明                                                    |
661| ------ | ---------- | ---- | ------------------------------------------------------- |
662| input  | string     | 是   | 需要编码的字符串。                                      |
663| dest   | Uint8Array | 是   | Uint8Array对象实例,用于将生成的UTF-8编码文本放入其中。 |
664
665**返回值:**
666
667| 类型      | 说明               |
668| --------- | ------------------ |
669| object | 返回一个对象,read表示已编码的字符数,write表示编码字符所占用的字节数。 |
670
671**示例:**
672
673```ts
674let that = new util.TextEncoder();
675let buffer = new ArrayBuffer(4);
676let dest = new Uint8Array(buffer);
677let result = new Object();
678result = that.encodeIntoUint8Array('abcd', dest);
679```
680
681### encodeInto<sup>(deprecated)</sup>
682
683encodeInto(input: string, dest: Uint8Array): { read: number; written: number }
684
685放置生成的UTF-8编码文本。
686
687> **说明:**
688>
689> 从API version 7开始支持,从API version 9开始废弃,建议使用[encodeIntoUint8Array<sup>9+</sup>](#encodeintouint8array9)替代。
690
691**系统能力:** SystemCapability.Utils.Lang
692
693**参数:**
694
695| 参数名 | 类型 | 必填 | 说明 |
696| -------- | -------- | -------- | -------- |
697| input | string | 是 | 需要编码的字符串。 |
698| dest | Uint8Array | 是 | Uint8Array对象实例,用于将生成的UTF-8编码文本放入其中。 |
699
700**返回值:**
701
702| 类型 | 说明 |
703| -------- | -------- |
704| Uint8Array | 返回编码后的文本。 |
705
706**示例:**
707
708```ts
709let that = new util.TextEncoder();
710let buffer = new ArrayBuffer(4);
711let dest = new Uint8Array(buffer);
712let result = new Object();
713result = that.encodeInto('abcd', dest);
714```
715
716### encode<sup>(deprecated)</sup>
717
718encode(input?: string): Uint8Array
719
720通过输入参数编码后输出对应文本。
721
722> **说明:**
723>
724> 从API version 7开始支持,从API version 9开始废弃,建议使用[encodeInto<sup>9+</sup>](#encodeinto9)替代。
725
726**系统能力:** SystemCapability.Utils.Lang
727
728**参数:**
729
730| 参数名 | 类型 | 必填 | 说明 |
731| -------- | -------- | -------- | -------- |
732| input | string | 否 | 需要编码的字符串,默认值是空字符串。 |
733
734**返回值:**
735
736| 类型 | 说明 |
737| -------- | -------- |
738| Uint8Array | 返回编码后的文本。 |
739
740**示例:**
741
742```ts
743let textEncoder = new util.TextEncoder();
744let buffer = new ArrayBuffer(20);
745let result = new Uint8Array(buffer);
746result = textEncoder.encode("\uD800¥¥");
747```
748
749## RationalNumber<sup>8+</sup>
750
751RationalNumber主要是对有理数进行比较,获取分子分母等方法。例如使用toString()方法可以将有理数转换为字符串形式,使用该类可以方便地进行有理数的各种操作。
752
753### constructor<sup>9+</sup>
754
755constructor()
756
757RationalNumber的构造函数。
758
759**系统能力:** SystemCapability.Utils.Lang
760
761**示例:**
762
763```ts
764let rationalNumber = new util.RationalNumber();
765```
766
767### parseRationalNumber<sup>9+</sup>
768
769parseRationalNumber(numerator: number,denominator: number): RationalNumber
770
771用于创建具有给定分子和分母的RationalNumber实例。
772
773**系统能力:** SystemCapability.Utils.Lang
774
775**参数:**
776
777| 参数名      | 类型   | 必填 | 说明             |
778| ----------- | ------ | ---- | ---------------- |
779| numerator   | number | 是   | 分子,整数类型。 |
780| denominator | number | 是   | 分母,整数类型。 |
781
782**示例:**
783
784```ts
785let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
786```
787
788### createRationalFromString<sup>8+</sup>
789
790static createRationalFromString​(rationalString: string): RationalNumber​
791
792基于给定的字符串创建一个RationalNumber对象。
793
794**系统能力:** SystemCapability.Utils.Lang
795
796**参数:**
797
798| 参数名 | 类型 | 必填 | 说明 |
799| -------- | -------- | -------- | -------- |
800| rationalString | string | 是 | 字符串格式。 |
801
802**返回值:**
803
804| 类型 | 说明 |
805| -------- | -------- |
806| Object | 返回RationalNumber对象。 |
807
808**示例:**
809
810```ts
811let rational = util.RationalNumber.createRationalFromString("3/4");
812```
813
814### compare<sup>9+</sup>
815
816compare​(another: RationalNumber): number​
817
818将当前RationalNumber对象与目标RationalNumber对象进行比较,并返回比较结果。
819
820**系统能力:** SystemCapability.Utils.Lang
821
822**参数:**
823
824| 参数名  | 类型           | 必填 | 说明               |
825| ------- | -------------- | ---- | ------------------ |
826| another | [RationalNumber](#rationalnumber8) | 是   | 其他的有理数对象。 |
827
828**返回值:**
829
830| 类型   | 说明                                                         |
831| ------ | ------------------------------------------------------------ |
832| number | 如果两个对象相等,则返回0;如果给定对象小于当前对象,则返回1;如果给定对象大于当前对象,则返回-1。 |
833
834**示例:**
835
836```ts
837let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
838let rational = util.RationalNumber.createRationalFromString("3/4");
839let result = rationalNumber.compare(rational);
840console.log("result = " + result);
841// 输出结果:result = -1
842```
843
844### valueOf<sup>8+</sup>
845
846valueOf(): number
847
848以整数形式或者浮点数的形式获取当前RationalNumber对象的值。
849
850**系统能力:** SystemCapability.Utils.Lang
851
852**返回值:**
853
854| 类型 | 说明 |
855| -------- | -------- |
856| number | 返回整数或者浮点数的值。 |
857
858**示例:**
859
860```ts
861let rationalNumber = new util.RationalNumber(1,2);
862let result = rationalNumber.valueOf();
863console.log("result = " + result);
864// 输出结果:result = 0.5
865```
866API 9及以上建议使用以下写法:
867```ts
868let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
869let result = rationalNumber.valueOf();
870console.log("result = " + result);
871// 输出结果:result = 0.5
872```
873
874### equals<sup>8+</sup>
875
876equals​(obj: Object): boolean
877
878将当前的RationalNumber对象与给定的对象进行比较是否相等。
879
880**系统能力:** SystemCapability.Utils.Lang
881
882**参数:**
883
884| 参数名 | 类型 | 必填 | 说明 |
885| -------- | -------- | -------- | -------- |
886| object | Object | 是 | 其他类型对象。 |
887
888**返回值:**
889
890| 类型 | 说明 |
891| -------- | -------- |
892| boolean | 如果给定对象与当前对象相同,则返回true;否则返回false。 |
893
894**示例:**
895
896```ts
897let rationalNumber = new util.RationalNumber(1,2);
898let rational = util.RationalNumber.createRationalFromString("3/4");
899let result = rationalNumber.equals(rational);
900console.log("result = " + result);
901// 输出结果:result = false
902```
903API 9及以上建议使用以下写法:
904```ts
905let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
906let rational = util.RationalNumber.createRationalFromString("3/4");
907let result = rationalNumber.equals(rational);
908console.log("result = " + result);
909// 输出结果:result = false
910```
911
912### getCommonFactor<sup>9+</sup>
913
914getCommonFactor(number1: number,number2: number): number
915
916获取两个指定整数的最大公约数。
917
918**系统能力:** SystemCapability.Utils.Lang
919
920**参数:**
921
922| 参数名  | 类型   | 必填 | 说明       |
923| ------- | ------ | ---- | ---------- |
924| number1 | number | 是   | 整数类型。 |
925| number2 | number | 是   | 整数类型。 |
926
927**返回值:**
928
929| 类型   | 说明                           |
930| ------ | ------------------------------ |
931| number | 返回两个给定数字的最大公约数。 |
932
933**示例:**
934
935```ts
936let result = util.RationalNumber.getCommonFactor(4,6);
937console.log("result = " + result);
938// 输出结果:result = 2
939```
940
941### getNumerator<sup>8+</sup>
942
943getNumerator​(): number
944
945获取当前RationalNumber对象的分子。
946
947**系统能力:** SystemCapability.Utils.Lang
948
949**返回值:**
950
951| 类型 | 说明 |
952| -------- | -------- |
953| number | 返回RationalNumber对象的分子的值。 |
954
955**示例:**
956
957```ts
958let rationalNumber = new util.RationalNumber(1,2);
959let result = rationalNumber.getNumerator();
960console.log("result = " + result);
961// 输出结果:result = 1
962```
963API 9及以上建议使用以下写法:
964```ts
965let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
966let result = rationalNumber.getNumerator();
967console.log("result = " + result);
968// 输出结果:result = 1
969```
970
971### getDenominator<sup>8+</sup>
972
973getDenominator​(): number
974
975获取当前RationalNumber对象的分母。
976
977**系统能力:** SystemCapability.Utils.Lang
978
979**返回值:**
980
981| 类型 | 说明 |
982| -------- | -------- |
983| number | 返回RationalNumber对象的分母的值。 |
984
985**示例:**
986
987```ts
988let rationalNumber = new util.RationalNumber(1,2);
989let result = rationalNumber.getDenominator();
990console.log("result = " + result);
991// 输出结果:result = 2
992```
993API 9及以上建议使用以下写法:
994```ts
995let rationalNumber = util.RationalNumber.parseRationalNumber(1,2)
996let result = rationalNumber.getDenominator();
997console.log("result = " + result);
998// 输出结果:result = 2
999```
1000
1001### isZero<sup>8+</sup>
1002
1003isZero​():boolean
1004
1005检查当前RationalNumber对象是否为0。
1006
1007**系统能力:** SystemCapability.Utils.Lang
1008
1009**返回值:**
1010
1011| 类型 | 说明 |
1012| -------- | -------- |
1013| boolean | 如果当前对象表示的值为0,则返回true;否则返回false。 |
1014
1015**示例:**
1016
1017```ts
1018let rationalNumber = new util.RationalNumber(1,2);
1019let result = rationalNumber.isZero();
1020console.log("result = " + result);
1021// 输出结果:result = false
1022```
1023API 9及以上建议使用以下写法:
1024```ts
1025let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
1026let result = rationalNumber.isZero();
1027console.log("result = " + result);
1028// 输出结果:result = false
1029```
1030
1031### isNaN<sup>8+</sup>
1032
1033isNaN​(): boolean
1034
1035检查当前RationalNumber对象是否表示非数字(NaN)值。
1036
1037**系统能力:** SystemCapability.Utils.Lang
1038
1039**返回值:**
1040
1041| 类型 | 说明 |
1042| -------- | -------- |
1043| boolean | 如果分母和分子都为0,则返回true;否则返回false。 |
1044
1045**示例:**
1046
1047```ts
1048let rationalNumber = new util.RationalNumber(1,2);
1049let result = rationalNumber.isNaN();
1050console.log("result = " + result);
1051// 输出结果:result = false
1052```
1053API 9及以上建议使用以下写法:
1054```ts
1055let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
1056let result = rationalNumber.isNaN();
1057console.log("result = " + result);
1058// 输出结果:result = false
1059```
1060
1061### isFinite<sup>8+</sup>
1062
1063isFinite​():boolean
1064
1065检查当前RationalNumber对象是否表示一个有限值。
1066
1067**系统能力:** SystemCapability.Utils.Lang
1068
1069**返回值:**
1070
1071| 类型 | 说明 |
1072| -------- | -------- |
1073| boolean | 如果分母不为0,则返回true;否则返回false。 |
1074
1075**示例:**
1076
1077```ts
1078let rationalNumber = new util.RationalNumber(1,2);
1079let result = rationalNumber.isFinite();
1080console.log("result = " + result);
1081// 输出结果:result = true
1082```
1083API 9及以上建议使用以下写法:
1084```ts
1085let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
1086let result = rationalNumber.isFinite();
1087console.log("result = " + result);
1088// 输出结果:result = true
1089```
1090
1091### toString<sup>8+</sup>
1092
1093toString​(): string
1094
1095获取当前RationalNumber对象的字符串表示形式。
1096
1097**系统能力:** SystemCapability.Utils.Lang
1098
1099**返回值:**
1100
1101| 类型 | 说明 |
1102| -------- | -------- |
1103| string | 返回Numerator/Denominator格式的字符串,例如3/5,如果当前对象的分子为0,则返回0/1。如果当前对象的分母为0,则返回Infinity。如果当前对象的分子和分母都为0,则返回NaN。|
1104
1105**示例:**
1106
1107```ts
1108let rationalNumber = new util.RationalNumber(1,2);
1109let result = rationalNumber.toString();
1110console.log("result = " + result);
1111// 输出结果:result = 1/2
1112```
1113API 9及以上建议使用以下写法:
1114```ts
1115let rationalNumber = util.RationalNumber.parseRationalNumber(1,2);
1116let result = rationalNumber.toString();
1117console.log("result = " + result);
1118// 输出结果:result = 1/2
1119```
1120
1121### constructor<sup>(deprecated)</sup>
1122
1123constructor(numerator: number,denominator: number)
1124
1125RationalNumber的构造函数。
1126
1127> **说明:**
1128>
1129> 从API version 8开始支持,从API version 9开始废弃,建议使用[parserationalnumber<sup>9+</sup>](#parserationalnumber9)替代。
1130
1131**系统能力:** SystemCapability.Utils.Lang
1132
1133**参数:**
1134
1135| 参数名 | 类型 | 必填 | 说明 |
1136| -------- | -------- | -------- | -------- |
1137| numerator | number | 是 | 分子,整数类型。 |
1138| denominator | number | 是 | 分母,整数类型。 |
1139
1140**示例:**
1141
1142```ts
1143let rationalNumber = new util.RationalNumber(1,2);
1144```
1145
1146### compareTo<sup>(deprecated)</sup>
1147
1148compareTo​(another: RationalNumber): number​
1149
1150将当前的RationalNumber对象与给定的对象进行比较。
1151
1152> **说明:**
1153>
1154> 从API version 8开始支持,从API version 9开始废弃,建议使用[compare<sup>9+</sup>](#compare9)替代。
1155
1156**系统能力:** SystemCapability.Utils.Lang
1157
1158**参数:**
1159
1160| 参数名 | 类型 | 必填 | 说明 |
1161| -------- | -------- | -------- | -------- |
1162| another | RationalNumber | 是 | 其他的有理数对象。 |
1163
1164**返回值:**
1165
1166| 类型 | 说明 |
1167| -------- | -------- |
1168| number | 如果两个对象相等,则返回0;如果给定对象小于当前对象,则返回1;如果给定对象大于当前对象,则返回-1。 |
1169
1170**示例:**
1171
1172```ts
1173let rationalNumber = new util.RationalNumber(1,2);
1174let rational = util.RationalNumber.createRationalFromString("3/4");
1175let result = rationalNumber.compareTo(rational);
1176```
1177
1178### getCommonDivisor<sup>(deprecated)</sup>
1179
1180static getCommonDivisor​(number1: number,number2: number): number
1181
1182获取两个指定整数的最大公约数。
1183
1184> **说明:**
1185>
1186> 从API version 8开始支持,从API version 9开始废弃,建议使用[getCommonFactor<sup>9+</sup>](#getcommonfactor9)替代。
1187
1188**系统能力:** SystemCapability.Utils.Lang
1189
1190**参数:**
1191
1192| 参数名 | 类型 | 必填 | 说明 |
1193| -------- | -------- | -------- | -------- |
1194| number1 | number | 是 | 整数类型。 |
1195| number2 | number | 是 | 整数类型。 |
1196
1197**返回值:**
1198
1199| 类型 | 说明 |
1200| -------- | -------- |
1201| number | 返回两个给定数字的最大公约数。 |
1202
1203**示例:**
1204
1205```ts
1206let rationalNumber = new util.RationalNumber(1,2);
1207let result = util.RationalNumber.getCommonDivisor(4,6);
1208```
1209
1210## LRUCache<sup>9+</sup>
1211
1212LRUCache用于在缓存空间不够的时候,将近期最少使用的数据替换为新数据。此设计基于资源访问的考虑:近期访问的数据,可能在不久的将来会再次访问。于是最少访问的数据就是价值最小的数据,是最应该踢出缓存空间的数据。
1213
1214### 属性
1215
1216**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang1217
1218| 名称   | 类型   | 可读 | 可写 | 说明                   |
1219| ------ | ------ | ---- | ---- | ---------------------- |
1220| length | number | 是   | 否   | 当前缓冲区中值的总数。 |
1221
1222**示例:**
1223
1224```ts
1225let  pro : util.LRUCache<number, number> = new util.LRUCache();
1226pro.put(2,10);
1227pro.put(1,8);
1228let result = pro.length;
1229```
1230
1231### constructor<sup>9+</sup>
1232
1233constructor(capacity?: number)
1234
1235默认构造函数用于创建一个新的LruBuffer实例,默认容量为64。
1236
1237**系统能力:** SystemCapability.Utils.Lang
1238
1239**参数:**
1240
1241| 参数名   | 类型   | 必填 | 说明                         |
1242| -------- | ------ | ---- | ---------------------------- |
1243| capacity | number | 否   | 指示要为缓冲区自定义的容量,默认值为64。 |
1244
1245**示例:**
1246
1247```ts
1248let lrubuffer : util.LRUCache<number, number> = new util.LRUCache();
1249```
1250
1251
1252### updateCapacity<sup>9+</sup>
1253
1254updateCapacity(newCapacity: number): void
1255
1256将缓冲区容量更新为指定容量,如果newCapacity小于或等于0,则抛出异常。
1257
1258**系统能力:** SystemCapability.Utils.Lang
1259
1260**参数:**
1261
1262| 参数名      | 类型   | 必填 | 说明                         |
1263| ----------- | ------ | ---- | ---------------------------- |
1264| newCapacity | number | 是   | 指示要为缓冲区自定义的容量。 |
1265
1266**示例:**
1267
1268```ts
1269let pro: util.LRUCache<number, number> = new util.LRUCache();
1270pro.updateCapacity(100);
1271```
1272
1273### toString<sup>9+</sup>
1274
1275toString(): string
1276
1277返回对象的字符串表示形式。
1278
1279**系统能力:** SystemCapability.Utils.Lang
1280
1281**返回值:**
1282
1283| 类型   | 说明                       |
1284| ------ | -------------------------- |
1285| string | 返回对象的字符串表示形式。 |
1286
1287**示例:**
1288
1289```ts
1290let pro: util.LRUCache<number, number> = new util.LRUCache();
1291pro.put(2,10);
1292pro.get(2);
1293pro.get(3);
1294console.log(pro.toString());
1295// 输出结果:LRUCache[ maxSize = 64, hits = 1, misses = 1, hitRate = 50% ]
1296// maxSize: 缓存区最大值 hits: 查询值匹配成功的次数 misses: 查询值匹配失败的次数 hitRate: 查询值匹配率
1297```
1298
1299### getCapacity<sup>9+</sup>
1300
1301getCapacity(): number
1302
1303获取当前缓冲区的容量。
1304
1305**系统能力:** SystemCapability.Utils.Lang
1306
1307**返回值:**
1308
1309| 类型   | 说明                   |
1310| ------ | ---------------------- |
1311| number | 返回当前缓冲区的容量。 |
1312
1313**示例:**
1314
1315```ts
1316let pro: util.LRUCache<number, number> = new util.LRUCache();
1317let result = pro.getCapacity();
1318```
1319
1320### clear<sup>9+</sup>
1321
1322clear(): void
1323
1324从当前缓冲区清除键值对。后续会调用afterRemoval()方法执行后续操作。
1325
1326**系统能力:** SystemCapability.Utils.Lang
1327
1328**示例:**
1329
1330```ts
1331let pro: util.LRUCache<number, number> = new util.LRUCache();
1332pro.put(2,10);
1333let result = pro.length;
1334pro.clear();
1335```
1336
1337### getCreateCount<sup>9+</sup>
1338
1339getCreateCount(): number
1340
1341获取创建对象的次数。
1342
1343**系统能力:** SystemCapability.Utils.Lang
1344
1345**返回值:**
1346
1347| 类型   | 说明                |
1348| ------ | -------------------|
1349| number | 返回创建对象的次数。 |
1350
1351**示例:**
1352
1353```ts
1354// 创建新类ChildLRUCache继承LRUCache,重写createDefault方法,返回一个非undefined的值。
1355class ChildLRUCache extends util.LRUCache<number, number> {
1356  constructor() {
1357    super();
1358  }
1359
1360  createDefault(key: number): number {
1361    return key;
1362  }
1363}
1364let lru = new ChildLRUCache();
1365lru.put(2,10);
1366lru.get(3);
1367lru.get(5);
1368let res = lru.getCreateCount();
1369```
1370
1371### getMissCount<sup>9+</sup>
1372
1373getMissCount(): number
1374
1375获取查询值不匹配的次数。
1376
1377**系统能力:** SystemCapability.Utils.Lang
1378
1379**返回值:**
1380
1381| 类型   | 说明                     |
1382| ------ | ------------------------ |
1383| number | 返回查询值不匹配的次数。 |
1384
1385**示例:**
1386
1387```ts
1388let pro: util.LRUCache<number, number> = new util.LRUCache();
1389pro.put(2,10);
1390pro.get(2);
1391let result = pro.getMissCount();
1392```
1393
1394### getRemovalCount<sup>9+</sup>
1395
1396getRemovalCount(): number
1397
1398获取缓冲区键值对回收的次数。
1399
1400**系统能力:** SystemCapability.Utils.Lang
1401
1402**返回值:**
1403
1404| 类型   | 说明                       |
1405| ------ | -------------------------- |
1406| number | 返回缓冲区键值对回收的次数。 |
1407
1408**示例:**
1409
1410```ts
1411let pro: util.LRUCache<number, number> = new util.LRUCache();
1412pro.put(2,10);
1413pro.updateCapacity(2);
1414pro.put(50,22);
1415let result = pro.getRemovalCount();
1416```
1417
1418### getMatchCount<sup>9+</sup>
1419
1420getMatchCount(): number
1421
1422获取查询值匹配成功的次数。
1423
1424**系统能力:** SystemCapability.Utils.Lang
1425
1426**返回值:**
1427
1428| 类型   | 说明                       |
1429| ------ | -------------------------- |
1430| number | 返回查询值匹配成功的次数。 |
1431
1432**示例:**
1433
1434  ```ts
1435  let pro: util.LRUCache<number, number> = new util.LRUCache();
1436  pro.put(2,10);
1437  pro.get(2);
1438  let result = pro.getMatchCount();
1439  ```
1440
1441### getPutCount<sup>9+</sup>
1442
1443getPutCount(): number
1444
1445获取将值添加到缓冲区的次数。
1446
1447**系统能力:** SystemCapability.Utils.Lang
1448
1449**返回值:**
1450
1451| 类型   | 说明                         |
1452| ------ | ---------------------------- |
1453| number | 返回将值添加到缓冲区的次数。 |
1454
1455**示例:**
1456
1457```ts
1458let pro: util.LRUCache<number, number> = new util.LRUCache();
1459pro.put(2,10);
1460let result = pro.getPutCount();
1461```
1462
1463### isEmpty<sup>9+</sup>
1464
1465isEmpty(): boolean
1466
1467检查当前缓冲区是否为空。
1468
1469**系统能力:** SystemCapability.Utils.Lang
1470
1471**返回值:**
1472
1473| 类型    | 说明                                     |
1474| ------- | ---------------------------------------- |
1475| boolean | 如果当前缓冲区不包含任何值,则返回true。 |
1476
1477**示例:**
1478
1479```ts
1480let pro: util.LRUCache<number, number> = new util.LRUCache();
1481pro.put(2,10);
1482let result = pro.isEmpty();
1483```
1484
1485### get<sup>9+</sup>
1486
1487get(key: K): V | undefined
1488
1489表示要查询的键。
1490
1491**系统能力:** SystemCapability.Utils.Lang
1492
1493**参数:**
1494
1495| 参数名 | 类型 | 必填 | 说明         |
1496| ------ | ---- | ---- | ------------ |
1497| key    | K    | 是   | 要查询的键。 |
1498
1499**返回值:**
1500
1501| 类型                     | 说明                                                         |
1502| ------------------------ | ------------------------------------------------------------ |
1503| V \| undefined | 如果指定的键存在于缓冲区中,则返回与键关联的值;否则返回undefined。 |
1504
1505**示例:**
1506
1507```ts
1508let pro: util.LRUCache<number, number> = new util.LRUCache();
1509pro.put(2,10);
1510let result  = pro.get(2);
1511```
1512
1513### put<sup>9+</sup>
1514
1515put(key: K,value: V): V
1516
1517将键值对添加到缓冲区。
1518
1519**系统能力:** SystemCapability.Utils.Lang
1520
1521**参数:**
1522
1523| 参数名 | 类型 | 必填 | 说明                       |
1524| ------ | ---- | ---- | -------------------------- |
1525| key    | K    | 是   | 要添加的密钥。             |
1526| value  | V    | 是   | 指示与要添加的键关联的值。 |
1527
1528**返回值:**
1529
1530| 类型 | 说明                                                         |
1531| ---- | ------------------------------------------------------------ |
1532| V    | 返回与添加的键关联的值;如果要添加的键已经存在,则返回原始值,如果键或值为空,则抛出此异常。 |
1533
1534**示例:**
1535
1536```ts
1537let pro: util.LRUCache<number, number> = new util.LRUCache();
1538let result = pro.put(2,10);
1539```
1540
1541### values<sup>9+</sup>
1542
1543values(): V[]
1544
1545获取当前缓冲区中所有值从最近访问到最近最少访问的顺序列表 。
1546
1547**系统能力:** SystemCapability.Utils.Lang
1548
1549**返回值:**
1550
1551| 类型      | 说明                                                         |
1552| --------- | ------------------------------------------------------------ |
1553| V&nbsp;[] | 按从最近访问到最近最少访问的顺序返回当前缓冲区中所有值的列表。 |
1554
1555**示例:**
1556
1557```ts
1558let pro: util.LRUCache<number|string,number|string> = new util.LRUCache();
1559pro.put(2,10);
1560pro.put(2,"anhu");
1561pro.put("afaf","grfb");
1562let result = pro.values();
1563```
1564
1565### keys<sup>9+</sup>
1566
1567keys(): K[]
1568
1569获取当前缓冲区中所有键从最近访问到最近最少访问的升序列表。
1570
1571**系统能力:** SystemCapability.Utils.Lang
1572
1573**返回值:**
1574
1575| 类型      | 说明                                                         |
1576| --------- | ------------------------------------------------------------ |
1577| K&nbsp;[] | 按升序返回当前缓冲区中所有键的列表,从最近访问到最近最少访问。 |
1578
1579**示例:**
1580
1581```ts
1582let pro: util.LRUCache<number, number> = new util.LRUCache();
1583pro.put(2,10);
1584let result = pro.keys();
1585```
1586
1587### remove<sup>9+</sup>
1588
1589remove(key: K): V | undefined
1590
1591从当前缓冲区中删除指定的键及其关联的值。
1592
1593**系统能力:** SystemCapability.Utils.Lang
1594
1595**参数:**
1596
1597| 参数名 | 类型 | 必填 | 说明           |
1598| ------ | ---- | ---- | -------------- |
1599| key    | K    | 是   | 要删除的键值。 |
1600
1601**返回值:**
1602
1603| 类型                     | 说明                                                         |
1604| ------------------------ | ------------------------------------------------------------ |
1605| V&nbsp;\|&nbsp;undefined | 返回一个包含已删除键值对的Optional对象;如果key不存在,则返回undefined,如果key为null,则抛出异常。 |
1606
1607**示例:**
1608
1609```ts
1610let pro: util.LRUCache<number, number> = new util.LRUCache();
1611pro.put(2,10);
1612let result = pro.remove(20);
1613```
1614
1615### afterRemoval<sup>9+</sup>
1616
1617afterRemoval(isEvict: boolean,key: K,value: V,newValue: V): void
1618
1619删除值后执行后续操作。
1620
1621**系统能力:** SystemCapability.Utils.Lang
1622
1623**参数:**
1624
1625| 参数名   | 类型    | 必填 | 说明                                                         |
1626| -------- | ------- | ---- | ------------------------------------------------------------ |
1627| isEvict  | boolean | 是   | 因容量不足而调用该方法时,参数值为true,其他情况为false。    |
1628| key      | K       | 是   | 表示删除的键。                                               |
1629| value    | V       | 是   | 表示删除的值。                                               |
1630| newValue | V       | 是   | 如果已调用put方法并且要添加的键已经存在,则参数值是关联的新值。其他情况下参数值为空。 |
1631
1632**示例:**
1633
1634```ts
1635class ChildLRUCache<K, V> extends util.LRUCache<K, V> {
1636  constructor(capacity?: number) {
1637    super(capacity);
1638  }
1639
1640  afterRemoval(isEvict: boolean, key: K, value: V, newValue: V): void {
1641    if (isEvict === true) {
1642      console.info('key: ' + key);
1643      console.info('value: ' + value);
1644      console.info('newValue: ' + newValue);
1645    }
1646  }
1647}
1648let lru: ChildLRUCache<number, number>= new ChildLRUCache(2);
1649lru.put(1, 1);
1650lru.put(2, 2);
1651lru.put(3, 3);
1652```
1653
1654### contains<sup>9+</sup>
1655
1656contains(key: K): boolean
1657
1658检查当前缓冲区是否包含指定的键。
1659
1660**系统能力:** SystemCapability.Utils.Lang
1661
1662**参数:**
1663
1664| 参数名 | 类型   | 必填 | 说明             |
1665| ------ | ------ | ---- | ---------------- |
1666| key    | K | 是   | 表示要检查的键。 |
1667
1668**返回值:**
1669
1670| 类型    | 说明                                       |
1671| ------- | ------------------------------------------ |
1672| boolean | 如果缓冲区包含指定的键,则返回&nbsp;true。 |
1673
1674**示例:**
1675
1676```ts
1677let pro : util.LRUCache<number | object, number> = new util.LRUCache();
1678pro.put(2,10);
1679class Lru{
1680s : string = "";
1681}
1682let obj : Lru = {s : "key" };
1683let result = pro.contains(obj);
1684```
1685
1686### createDefault<sup>9+</sup>
1687
1688createDefault(key: K): V
1689
1690如果未计算特定键的值,则执行后续操作,参数表示丢失的键,返回与键关联的值。
1691
1692**系统能力:** SystemCapability.Utils.Lang
1693
1694**参数:**
1695
1696| 参数名 | 类型 | 必填 | 说明           |
1697| ------ | ---- | ---- | -------------- |
1698| key    | K    | 是   | 表示丢失的键。 |
1699
1700**返回值:**
1701
1702| 类型 | 说明               |
1703| ---- | ------------------ |
1704| V    | 返回与键关联的值。 |
1705
1706**示例:**
1707
1708```ts
1709let pro: util.LRUCache<number, number> = new util.LRUCache();
1710let result = pro.createDefault(50);
1711```
1712
1713### entries<sup>9+</sup>
1714
1715entries(): IterableIterator&lt;[K,V]&gt;
1716
1717允许迭代包含在这个对象中的所有键值对。
1718
1719**系统能力:** SystemCapability.Utils.Lang
1720
1721**返回值:**
1722
1723| 类型        | 说明                 |
1724| ----------- | -------------------- |
1725| [K,&nbsp;V] | 返回一个可迭代数组。 |
1726
1727**示例:**
1728
1729```ts
1730let pro: util.LRUCache<number, number> = new util.LRUCache();
1731pro.put(2,10);
1732pro.put(3,15);
1733let pair:Iterable<Object[]> = pro.entries();
1734let arrayValue = Array.from(pair);
1735for (let value of arrayValue) {
1736  console.log(value[0]+ ', '+ value[1]);
1737}
1738```
1739
1740### [Symbol.iterator]<sup>9+</sup>
1741
1742[Symbol.iterator]\(): IterableIterator&lt;[K, V]&gt;
1743
1744返回一个键值对形式的二维数组。
1745
1746> **说明:**
1747>
1748> 本接口不支持在.ets文件中使用
1749
1750**系统能力:** SystemCapability.Utils.Lang
1751
1752**返回值:**
1753
1754| 类型        | 说明                           |
1755| ----------- | ------------------------------ |
1756| [K,&nbsp;V] | 返回一个键值对形式的二维数组。 |
1757
1758**示例:**
1759
1760```ts
1761let pro: util.LRUCache<number, number> = new util.LRUCache();
1762pro.put(2,10);
1763pro.put(3,15);
1764let pair:Iterable<Object[]> = pro[Symbol.iterator]();
1765let arrayValue = Array.from(pair);
1766for (let value of arrayValue) {
1767  console.log(value[0]+ ', '+ value[1]);
1768}
1769```
1770
1771## ScopeComparable<sup>8+</sup>
1772
1773ScopeComparable类型的值需要实现compareTo方法,确保传入的数据具有可比性。
1774
1775**系统能力:** SystemCapability.Utils.Lang
1776
1777### compareTo<sup>8+</sup>
1778
1779compareTo(other: ScopeComparable): boolean
1780
1781比较两个值的大小,返回一个布尔值。
1782
1783**系统能力:** SystemCapability.Utils.Lang
1784
1785**参数:**
1786
1787| 参数名 | 类型 | 必填 | 说明           |
1788| ------ | ---- | ---- | -------------- |
1789| other  | [ScopeComparable](#scopecomparable8) | 是  | 表示要比较的值。 |
1790
1791**返回值:**
1792
1793| 类型 | 说明               |
1794| ---- | ------------------ |
1795| boolean | 调用compareTo的值大于等于传入的值返回true,否则返回false。|
1796
1797**示例:**
1798
1799构造新类,实现compareTo方法。后续示例代码中,均以此Temperature类为例。
1800
1801```ts
1802class Temperature{
1803  private readonly _temp: number;
1804  constructor(value : number) {
1805    this._temp = value;
1806  }
1807  compareTo(value : Temperature ) {
1808    return this._temp >= value.getTemp();
1809  }
1810  getTemp() {
1811    return this._temp;
1812  }
1813  toString() : string {
1814    return this._temp.toString();
1815  }
1816}
1817```
1818
1819## ScopeType<sup>8+</sup>
1820
1821用于表示范围中的值的类型。
1822
1823**系统能力:** SystemCapability.Utils.Lang
1824
1825| 类型 | 说明 |
1826| -------- | -------- |
1827| number | 表示值的类型为数字。 |
1828| [ScopeComparable](#scopecomparable8) | 表示值的类型为ScopeComparable。|
1829
1830## ScopeHelper<sup>9+</sup>
1831
1832ScopeHelper接口用于描述一个字段的有效范围。ScopeHelper实例的构造函数用于创建具有指定下限和上限的对象,并要求这些对象必须具有可比性。
1833
1834### constructor<sup>9+</sup>
1835
1836constructor(lowerObj: ScopeType, upperObj: ScopeType)
1837
1838用于创建指定下限和上限的作用域实例的构造函数,返回一个ScopeHelper对象。
1839
1840**系统能力:** SystemCapability.Utils.Lang
1841
1842**参数:**
1843
1844| 参数名   | 类型                     | 必填 | 说明                   |
1845| -------- | ------------------------ | ---- | ---------------------- |
1846| lowerObj | [ScopeType](#scopetype8) | 是   | 指定作用域实例的下限。 |
1847| upperObj | [ScopeType](#scopetype8) | 是   | 指定作用域实例的上限。 |
1848
1849**示例:**
1850
1851```ts
1852class Temperature{
1853  private readonly _temp: number;
1854  constructor(value : number) {
1855    this._temp = value;
1856  }
1857  compareTo(value : Temperature ) {
1858    return this._temp >= value.getTemp();
1859  }
1860  getTemp() {
1861    return this._temp;
1862  }
1863  toString() : string {
1864    return this._temp.toString();
1865  }
1866}
1867let tempLower = new Temperature(30);
1868let tempUpper = new Temperature(40);
1869let range = new util.ScopeHelper(tempLower, tempUpper);
1870```
1871
1872### toString<sup>9+</sup>
1873
1874toString(): string
1875
1876该字符串化方法返回一个包含当前范围的字符串表示形式。
1877
1878**系统能力:** SystemCapability.Utils.Lang
1879
1880**返回值:**
1881
1882| 类型   | 说明                                   |
1883| ------ | -------------------------------------- |
1884| string | 返回包含当前范围对象的字符串表示形式。 |
1885
1886**示例:**
1887
1888```ts
1889class Temperature{
1890  private readonly _temp: number;
1891  constructor(value : number) {
1892    this._temp = value;
1893  }
1894  compareTo(value : Temperature ) {
1895    return this._temp >= value.getTemp();
1896  }
1897  getTemp() {
1898    return this._temp;
1899  }
1900  toString() : string {
1901    return this._temp.toString();
1902  }
1903}
1904
1905let tempLower = new Temperature(30);
1906let tempUpper = new Temperature(40);
1907let range = new util.ScopeHelper(tempLower, tempUpper);
1908let result = range.toString();
1909```
1910
1911### intersect<sup>9+</sup>
1912
1913intersect(range: ScopeHelper): ScopeHelper
1914
1915获取给定范围和当前范围的交集。
1916
1917**系统能力:** SystemCapability.Utils.Lang
1918
1919**参数:**
1920
1921| 参数名 | 类型                         | 必填 | 说明               |
1922| ------ | ---------------------------- | ---- | ------------------ |
1923| range  | [ScopeHelper](#scopehelper9) | 是   | 传入一个给定范围。 |
1924
1925**返回值:**
1926
1927| 类型                           | 说明                           |
1928| ------------------------------ | ------------------------------ |
1929| [ScopeHelper](#scopehelper9) | 返回给定范围和当前范围的交集。 |
1930
1931**示例:**
1932
1933```ts
1934class Temperature{
1935  private readonly _temp: number;
1936  constructor(value : number) {
1937    this._temp = value;
1938  }
1939  compareTo(value : Temperature ) {
1940    return this._temp >= value.getTemp();
1941  }
1942  getTemp() {
1943    return this._temp;
1944  }
1945  toString() : string {
1946    return this._temp.toString();
1947  }
1948}
1949
1950let tempLower = new Temperature(30);
1951let tempUpper = new Temperature(40);
1952let range = new util.ScopeHelper(tempLower, tempUpper);
1953let tempMiDF = new Temperature(35);
1954let tempMidS = new Temperature(39);
1955let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS);
1956range.intersect(rangeFir);
1957```
1958
1959### intersect<sup>9+</sup>
1960
1961intersect(lowerObj:ScopeType,upperObj:ScopeType):ScopeHelper
1962
1963获取当前范围与给定下限和上限范围的交集。
1964
1965**系统能力:** SystemCapability.Utils.Lang
1966
1967**参数:**
1968
1969| 参数名   | 类型                     | 必填 | 说明             |
1970| -------- | ------------------------ | ---- | ---------------- |
1971| lowerObj | [ScopeType](#scopetype8) | 是   | 给定范围的下限。 |
1972| upperObj | [ScopeType](#scopetype8) | 是   | 给定范围的上限。 |
1973
1974**返回值:**
1975
1976| 类型                         | 说明                                     |
1977| ---------------------------- | ---------------------------------------- |
1978| [ScopeHelper](#scopehelper9) | 返回当前范围与给定下限和上限范围的交集。 |
1979
1980**示例:**
1981
1982```ts
1983class Temperature{
1984  private readonly _temp: number;
1985  constructor(value : number) {
1986    this._temp = value;
1987  }
1988  compareTo(value : Temperature ) {
1989    return this._temp >= value.getTemp();
1990  }
1991  getTemp() {
1992    return this._temp;
1993  }
1994  toString() : string {
1995    return this._temp.toString();
1996  }
1997}
1998
1999let tempLower = new Temperature(30);
2000let tempUpper = new Temperature(40);
2001let tempMiDF = new Temperature(35);
2002let tempMidS = new Temperature(39);
2003let range = new util.ScopeHelper(tempLower, tempUpper);
2004let result = range.intersect(tempMiDF, tempMidS);
2005```
2006
2007### getUpper<sup>9+</sup>
2008
2009getUpper(): ScopeType
2010
2011获取当前范围的上限。
2012
2013**系统能力:** SystemCapability.Utils.Lang
2014
2015**返回值:**
2016
2017| 类型                     | 说明                   |
2018| ------------------------ | ---------------------- |
2019| [ScopeType](#scopetype8) | 返回当前范围的上限值。 |
2020
2021**示例:**
2022
2023```ts
2024class Temperature{
2025  private readonly _temp: number;
2026  constructor(value : number) {
2027    this._temp = value;
2028  }
2029  compareTo(value : Temperature ) {
2030    return this._temp >= value.getTemp();
2031  }
2032  getTemp() {
2033    return this._temp;
2034  }
2035  toString() : string {
2036    return this._temp.toString();
2037  }
2038}
2039
2040let tempLower = new Temperature(30);
2041let tempUpper = new Temperature(40);
2042let range = new util.ScopeHelper(tempLower, tempUpper);
2043let result = range.getUpper();
2044```
2045
2046### getLower<sup>9+</sup>
2047
2048getLower(): ScopeType
2049
2050获取当前范围的下限。
2051
2052**系统能力:** SystemCapability.Utils.Lang
2053
2054**返回值:**
2055
2056| 类型                     | 说明                   |
2057| ------------------------ | ---------------------- |
2058| [ScopeType](#scopetype8) | 返回当前范围的下限值。 |
2059
2060**示例:**
2061
2062```ts
2063class Temperature{
2064  private readonly _temp: number;
2065  constructor(value : number) {
2066    this._temp = value;
2067  }
2068  compareTo(value : Temperature ) {
2069    return this._temp >= value.getTemp();
2070  }
2071  getTemp() {
2072    return this._temp;
2073  }
2074  toString() : string {
2075    return this._temp.toString();
2076  }
2077}
2078
2079let tempLower = new Temperature(30);
2080let tempUpper = new Temperature(40);
2081let range = new util.ScopeHelper(tempLower, tempUpper);
2082let result = range.getLower();
2083```
2084
2085### expand<sup>9+</sup>
2086
2087expand(lowerObj: ScopeType,upperObj: ScopeType): ScopeHelper
2088
2089创建并返回包括当前范围和给定下限和上限的并集。
2090
2091**系统能力:** SystemCapability.Utils.Lang
2092
2093**参数:**
2094
2095| 参数名   | 类型                     | 必填 | 说明             |
2096| -------- | ------------------------ | ---- | ---------------- |
2097| lowerObj | [ScopeType](#scopetype8) | 是   | 给定范围的下限。 |
2098| upperObj | [ScopeType](#scopetype8) | 是   | 给定范围的上限。 |
2099
2100**返回值:**
2101
2102| 类型                         | 说明                                 |
2103| ---------------------------- | ------------------------------------ |
2104| [ScopeHelper](#scopehelper9) | 返回当前范围和给定下限和上限的并集。 |
2105
2106**示例:**
2107
2108```ts
2109class Temperature{
2110  private readonly _temp: number;
2111  constructor(value : number) {
2112    this._temp = value;
2113  }
2114  compareTo(value : Temperature ) {
2115    return this._temp >= value.getTemp();
2116  }
2117  getTemp() {
2118    return this._temp;
2119  }
2120  toString() : string {
2121    return this._temp.toString();
2122  }
2123}
2124
2125let tempLower = new Temperature(30);
2126let tempUpper = new Temperature(40);
2127let tempMiDF = new Temperature(35);
2128let tempMidS = new Temperature(39);
2129let range = new util.ScopeHelper(tempLower, tempUpper);
2130let result = range.expand(tempMiDF, tempMidS);
2131```
2132
2133### expand<sup>9+</sup>
2134
2135expand(range: ScopeHelper): ScopeHelper
2136
2137创建并返回包括当前范围和给定范围的并集。
2138
2139**系统能力:** SystemCapability.Utils.Lang
2140
2141**参数:**
2142
2143| 参数名 | 类型                         | 必填 | 说明               |
2144| ------ | ---------------------------- | ---- | ------------------ |
2145| range  | [ScopeHelper](#scopehelper9) | 是   | 传入一个给定范围。 |
2146
2147**返回值:**
2148
2149| 类型                         | 说明                               |
2150| ---------------------------- | ---------------------------------- |
2151| [ScopeHelper](#scopehelper9) | 返回包括当前范围和给定范围的并集。 |
2152
2153**示例:**
2154
2155```ts
2156class Temperature{
2157  private readonly _temp: number;
2158  constructor(value : number) {
2159    this._temp = value;
2160  }
2161  compareTo(value : Temperature ) {
2162    return this._temp >= value.getTemp();
2163  }
2164  getTemp() {
2165    return this._temp;
2166  }
2167  toString() : string {
2168    return this._temp.toString();
2169  }
2170}
2171
2172let tempLower = new Temperature(30);
2173let tempUpper = new Temperature(40);
2174let tempMiDF = new Temperature(35);
2175let tempMidS = new Temperature(39);
2176let range = new util.ScopeHelper(tempLower, tempUpper);
2177let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS);
2178let result = range.expand(rangeFir);
2179```
2180
2181### expand<sup>9+</sup>
2182
2183expand(value: ScopeType): ScopeHelper
2184
2185创建并返回包括当前范围和给定值的并集。
2186
2187**系统能力:** SystemCapability.Utils.Lang
2188
2189**参数:**
2190
2191| 参数名 | 类型                     | 必填 | 说明             |
2192| ------ | ------------------------ | ---- | ---------------- |
2193| value  | [ScopeType](#scopetype8) | 是   | 传入一个给定值。 |
2194
2195**返回值:**
2196
2197| 类型                         | 说明                             |
2198| ---------------------------- | -------------------------------- |
2199| [ScopeHelper](#scopehelper9) | 返回包括当前范围和给定值的并集。 |
2200
2201**示例:**
2202
2203```ts
2204class Temperature{
2205  private readonly _temp: number;
2206  constructor(value : number) {
2207    this._temp = value;
2208  }
2209  compareTo(value : Temperature ) {
2210    return this._temp >= value.getTemp();
2211  }
2212  getTemp() {
2213    return this._temp;
2214  }
2215  toString() : string {
2216    return this._temp.toString();
2217  }
2218}
2219
2220let tempLower = new Temperature(30);
2221let tempUpper = new Temperature(40);
2222let tempMiDF = new Temperature(35);
2223let range = new util.ScopeHelper(tempLower, tempUpper);
2224let result = range.expand(tempMiDF);
2225```
2226
2227### contains<sup>9+</sup>
2228
2229contains(value: ScopeType): boolean
2230
2231检查给定value是否包含在当前范围内。
2232
2233**系统能力:** SystemCapability.Utils.Lang
2234
2235**参数:**
2236
2237| 参数名 | 类型                     | 必填 | 说明             |
2238| ------ | ------------------------ | ---- | ---------------- |
2239| value  | [ScopeType](#scopetype8) | 是   | 传入一个给定值。 |
2240
2241**返回值:**
2242
2243| 类型    | 说明                                                |
2244| ------- | --------------------------------------------------- |
2245| boolean | 如果给定值包含在当前范围内返回true,否则返回false。 |
2246
2247**示例:**
2248
2249```ts
2250class Temperature{
2251  private readonly _temp: number;
2252  constructor(value : number) {
2253    this._temp = value;
2254  }
2255  compareTo(value : Temperature ) {
2256    return this._temp >= value.getTemp();
2257  }
2258  getTemp() {
2259    return this._temp;
2260  }
2261  toString() : string {
2262    return this._temp.toString();
2263  }
2264}
2265
2266let tempLower = new Temperature(30);
2267let tempUpper = new Temperature(40);
2268let tempMiDF = new Temperature(35);
2269let range = new util.ScopeHelper(tempLower, tempUpper);
2270let result = range.contains(tempMiDF);
2271```
2272
2273### contains<sup>9+</sup>
2274
2275contains(range: ScopeHelper): boolean
2276
2277检查给定range是否在当前范围内。
2278
2279**系统能力:** SystemCapability.Utils.Lang
2280
2281**参数:**
2282
2283| 参数名 | 类型                         | 必填 | 说明               |
2284| ------ | ---------------------------- | ---- | ------------------ |
2285| range  | [ScopeHelper](#scopehelper9) | 是   | 传入一个给定范围。 |
2286
2287**返回值:**
2288
2289| 类型    | 说明                                                  |
2290| ------- | ----------------------------------------------------- |
2291| boolean | 如果给定范围包含在当前范围内返回true,否则返回false。 |
2292
2293**示例:**
2294
2295```ts
2296class Temperature{
2297  private readonly _temp: number;
2298  constructor(value : number) {
2299    this._temp = value;
2300  }
2301  compareTo(value : Temperature ) {
2302    return this._temp >= value.getTemp();
2303  }
2304  getTemp() {
2305    return this._temp;
2306  }
2307  toString() : string {
2308    return this._temp.toString();
2309  }
2310}
2311
2312let tempLower = new Temperature(30);
2313let tempUpper = new Temperature(40);
2314let range = new util.ScopeHelper(tempLower, tempUpper);
2315let tempLess = new Temperature(20);
2316let tempMore = new Temperature(45);
2317let rangeSec = new util.ScopeHelper(tempLess, tempMore);
2318let result = range.contains(rangeSec);
2319```
2320
2321### clamp<sup>9+</sup>
2322
2323clamp(value: ScopeType): ScopeType
2324
2325将给定值限定到当前范围内。
2326
2327**系统能力:** SystemCapability.Utils.Lang
2328
2329**参数:**
2330
2331| 参数名 | 类型                     | 必填 | 说明           |
2332| ------ | ------------------------ | ---- | -------------- |
2333| value  | [ScopeType](#scopetype8) | 是   | 传入的给定值。 |
2334
2335**返回值:**
2336
2337| 类型                     | 说明                                                         |
2338| ------------------------ | ------------------------------------------------------------ |
2339| [ScopeType](#scopetype8) | 如果传入的value小于下限,则返回lowerObj;如果大于上限值则返回upperObj;如果在当前范围内,则返回value。 |
2340
2341**示例:**
2342
2343```ts
2344class Temperature{
2345  private readonly _temp: number;
2346  constructor(value : number) {
2347    this._temp = value;
2348  }
2349  compareTo(value : Temperature ) {
2350    return this._temp >= value.getTemp();
2351  }
2352  getTemp() {
2353    return this._temp;
2354  }
2355  toString() : string {
2356    return this._temp.toString();
2357  }
2358}
2359
2360let tempLower = new Temperature(30);
2361let tempUpper = new Temperature(40);
2362let tempMiDF = new Temperature(35);
2363let range = new util.ScopeHelper(tempLower, tempUpper);
2364let result = range.clamp(tempMiDF);
2365```
2366
2367## Base64Helper<sup>9+</sup>
2368
2369Base64编码表包含A-Z、a-z、0-9这62个字符,以及"+"和"/"这两个特殊字符。在编码时,将原始数据按3个字节一组进行划分,得到若干个6位的数字,然后使用Base64编码表中对应的字符来表示这些数字。如果最后剩余1或2个字节,则需要使用"="字符进行补齐。
2370
2371### constructor<sup>9+</sup>
2372
2373constructor()
2374
2375Base64Helper的构造函数。
2376
2377**系统能力:** SystemCapability.Utils.Lang
2378
2379**示例:**
2380
2381  ```ts
2382  let base64 = new  util.Base64Helper();
2383  ```
2384
2385### encodeSync<sup>9+</sup>
2386
2387encodeSync(src: Uint8Array): Uint8Array
2388
2389通过输入参数编码后输出Uint8Array对象。
2390
2391**系统能力:** SystemCapability.Utils.Lang
2392
2393**参数:**
2394
2395| 参数名 | 类型       | 必填 | 说明                |
2396| ------ | ---------- | ---- | ------------------- |
2397| src    | Uint8Array | 是   | 待编码Uint8Array对象。 |
2398
2399**返回值:**
2400
2401| 类型       | 说明                          |
2402| ---------- | ----------------------------- |
2403| Uint8Array | 返回编码后的Uint8Array对象。 |
2404
2405**示例:**
2406
2407  ```ts
2408  let that = new util.Base64Helper();
2409  let array = new Uint8Array([115,49,51]);
2410  let result = that.encodeSync(array);
2411  ```
2412
2413
2414### encodeToStringSync<sup>9+</sup>
2415
2416encodeToStringSync(src: Uint8Array, options?: Type): string
2417
2418通过输入参数编码后输出对应文本。
2419
2420**系统能力:** SystemCapability.Utils.Lang
2421
2422**参数:**
2423
2424| 参数名 | 类型       | 必填 | 说明                |
2425| ------ | ---------- | ---- | ------------------- |
2426| src    | Uint8Array | 是   | 待编码Uint8Array对象。 |
2427| options<sup>10+</sup>    | [Type](#type10) | 否   | 从API version 10开始支持该参数,表示对应的编码格式。<br/>此参数可选,可选值为:util.Type.BASICutil.Type.MIME,默认值为:util.Type.BASIC。<br/>- 当参数取值为util.Type.BASIC时,输出结果包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个'+'和'/',没有回车符、换行符。<br/>- 当参数取值为util.Type.MIME时,输出结果包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个'+'和'/',编码输出每一行不超过76个字符,而且每行以'\r\n'符结束。|
2428
2429**返回值:**
2430
2431| 类型   | 说明                 |
2432| ------ | -------------------- |
2433| string | 返回编码后的字符串。 |
2434
2435**示例:**
2436
2437  ```ts
2438  let that = new util.Base64Helper();
2439  let array = new Uint8Array([77,97,110,105,115,100,105,115,116,105,110,103,117,105,115,104,101,100,110,111,116,111,110,108,121,98,121,104,105,115,114,101,97,115,111,110,98,117,116,98,121,116,104,105,115,115,105,110,103,117,108,97,114,112,97,115,115,105,111,110,102,114,111,109,111,116,104,101,114,97,110,105,109,97,108,115,119,104,105,99,104,105,115,97,108,117,115,116,111,102,116,104,101,109,105,110,100,101,120,99,101,101,100,115,116,104,101,115,104,111,114,116,118,101,104,101,109,101,110,99,101,111,102,97,110,121,99,97,114,110,97,108,112,108,101,97,115,117,114,101]);
2440  let result = that.encodeToStringSync(array, util.Type.MIME);
2441  ```
2442
2443
2444### decodeSync<sup>9+</sup>
2445
2446decodeSync(src: Uint8Array | string, options?: Type): Uint8Array
2447
2448通过输入参数解码后输出对应Uint8Array对象。
2449
2450**系统能力:** SystemCapability.Utils.Lang
2451
2452**参数:**
2453
2454| 参数名 | 类型                           | 必填 | 说明                          |
2455| ------ | ------------------------------ | ---- | ----------------------------- |
2456| src    | Uint8Array&nbsp;\|&nbsp;string | 是   | 待解码Uint8Array对象或者字符串。 |
2457| options<sup>10+</sup>    | [Type](#type10) | 否   | 从API version 10开始支持该参数,表示对应的编码格式。<br/>此参数可选,可选值为:util.Type.BASICutil.Type.MIME,默认值为:util.Type.BASIC。<br/>- 当参数取值为util.Type.BASIC时,表示入参包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个'+'和'/',没有回车符、换行符。<br/>- 当参数取值为util.Type.MIME时,表示入参包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个'+'和'/',每一行不超过76个字符,而且每行以'\r\n'符结束。 |
2458
2459**返回值:**
2460
2461| 类型       | 说明                          |
2462| ---------- | ----------------------------- |
2463| Uint8Array | 返回解码后新分配的Uint8Array对象。 |
2464
2465**示例:**
2466
2467  ```ts
2468  let that = new util.Base64Helper();
2469  let buff = 'TWFuaXNkaXN0aW5ndWlzaGVkbm90b25seWJ5aGlzcmVhc29uYnV0Ynl0aGlzc2luZ3VsYXJwYXNz\r\naW9uZnJvbW90aGVyYW5pbWFsc3doaWNoaXNhbHVzdG9mdGhlbWluZGV4Y2VlZHN0aGVzaG9ydHZl\r\naGVtZW5jZW9mYW55Y2FybmFscGxlYXN1cmU=\r\n';
2470  let result = that.decodeSync(buff, util.Type.MIME);
2471  ```
2472
2473
2474### encode<sup>9+</sup>
2475
2476encode(src: Uint8Array): Promise&lt;Uint8Array&gt;
2477
2478通过输入参数异步编码后输出对应Uint8Array对象。
2479
2480**系统能力:** SystemCapability.Utils.Lang
2481
2482**参数:**
2483
2484| 参数名 | 类型       | 必填 | 说明                    |
2485| ------ | ---------- | ---- | ----------------------- |
2486| src    | Uint8Array | 是   | 异步编码输入Uint8Array对象。 |
2487
2488**返回值:**
2489
2490| 类型                      | 说明                              |
2491| ------------------------- | --------------------------------- |
2492| Promise&lt;Uint8Array&gt; | 返回异步编码后新分配的Uint8Array对象。 |
2493
2494**示例:**
2495
2496  ```ts
2497  let that = new util.Base64Helper();
2498  let array = new Uint8Array([115,49,51]);
2499  let rarray = new Uint8Array([99,122,69,122]);
2500  that.encode(array).then(val=>{
2501    for (let i = 0; i < rarray.length; i++) {
2502      console.log(val[i].toString());
2503    }
2504  })
2505  ```
2506
2507
2508### encodeToString<sup>9+</sup>
2509
2510encodeToString(src: Uint8Array, options?: Type): Promise&lt;string&gt;
2511
2512通过输入参数异步编码后输出对应文本。
2513
2514**系统能力:** SystemCapability.Utils.Lang
2515
2516**参数:**
2517
2518| 参数名 | 类型       | 必填 | 说明                    |
2519| ------ | ---------- | ---- | ----------------------- |
2520| src    | Uint8Array | 是   | 异步编码输入Uint8Array对象。 |
2521| options<sup>10+</sup>    | [Type](#type10) | 否   |  从API version 10开始支持该参数,表示对应的编码格式。<br/>此参数可选,可选值为:util.Type.BASICutil.Type.MIME,默认值为:util.Type.BASIC。<br/>- 当参数取值为util.Type.BASIC时,输出结果包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个'+'和'/',没有回车符、换行符。<br/>- 当参数取值为util.Type.MIME时,输出结果包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个'+'和'/',编码输出每一行不超过76个字符,而且每行以'\r\n'符结束。 |
2522
2523**返回值:**
2524
2525| 类型                  | 说明                     |
2526| --------------------- | ------------------------ |
2527| Promise&lt;string&gt; | 返回异步编码后的字符串。 |
2528
2529**示例:**
2530
2531  ```ts
2532  let that = new util.Base64Helper();
2533  let array = new Uint8Array([77,97,110,105,115,100,105,115,116,105,110,103,117,105,115,104,101,100,110,111,116,111,110,108,121,98,121,104,105,115,114,101,97,115,111,110,98,117,116,98,121,116,104,105,115,115,105,110,103,117,108,97,114,112,97,115,115,105,111,110,102,114,111,109,111,116,104,101,114,97,110,105,109,97,108,115,119,104,105,99,104,105,115,97,108,117,115,116,111,102,116,104,101,109,105,110,100,101,120,99,101,101,100,115,116,104,101,115,104,111,114,116,118,101,104,101,109,101,110,99,101,111,102,97,110,121,99,97,114,110,97,108,112,108,101,97,115,117,114,101]);
2534  that.encodeToString(array, util.Type.MIME).then(val=>{
2535    // 根据开发者需求进行添加。
2536  })
2537  ```
2538
2539
2540### decode<sup>9+</sup>
2541
2542decode(src: Uint8Array | string, options?: Type): Promise&lt;Uint8Array&gt;
2543
2544通过输入参数异步解码后输出对应Uint8Array对象。
2545
2546**系统能力:** SystemCapability.Utils.Lang
2547
2548**参数:**
2549
2550| 参数名 | 类型                           | 必填 | 说明                              |
2551| ------ | ------------------------------ | ---- | --------------------------------- |
2552| src    | Uint8Array&nbsp;\|&nbsp;string | 是   | 异步解码输入Uint8Array对象或者字符串。 |
2553| options<sup>10+</sup>    | [Type](#type10) | 否   | 从API version 10开始支持该参数,表示对应的编码格式。<br/>此参数可选,可选值为:util.Type.BASICutil.Type.MIME,默认值为:util.Type.BASIC。<br/>- 当参数取值为util.Type.BASIC时,表示入参包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个'+'和'/',没有回车符、换行符。<br/>- 当参数取值为util.Type.MIME时,表示入参包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个'+'和'/',每一行不超过76个字符,而且每行以'\r\n'符结束。 |
2554
2555**返回值:**
2556
2557| 类型                      | 说明                              |
2558| ------------------------- | --------------------------------- |
2559| Promise&lt;Uint8Array&gt; | 返回异步解码后新分配的Uint8Array对象。 |
2560
2561**示例:**
2562
2563  ```ts
2564  let that = new util.Base64Helper();
2565  let array = 'TWFuaXNkaXN0aW5ndWlzaGVkbm90b25seWJ5aGlzcmVhc29uYnV0Ynl0aGlzc2luZ3VsYXJwYXNz\r\naW9uZnJvbW90aGVyYW5pbWFsc3doaWNoaXNhbHVzdG9mdGhlbWluZGV4Y2VlZHN0aGVzaG9ydHZl\r\naGVtZW5jZW9mYW55Y2FybmFscGxlYXN1cmU=\r\n';
2566  that.decode(array, util.Type.MIME).then(val=>{
2567    // 根据开发者需求进行添加。
2568  })
2569  ```
2570
2571
2572## Type<sup>10+</sup>
2573
2574Base64编码格式枚举。
2575
2576**系统能力:** SystemCapability.Utils.Lang
2577
2578| 名称   |值| 说明               |
2579| ----- |---| ----------------- |
2580| BASIC | 0 | 表示BASIC编码格式。|
2581| MIME  | 1 | 表示MIME编码格式。 |
2582
2583
2584## types<sup>8+</sup>
2585
2586types为不同类型的内置对象提供类型检查,可以避免由于类型错误导致的异常或崩溃。该模块包含了多个工具函数,用于判断JS对象是否属于各种类型例如:ArrayBuffer、Map、Set等。
2587
2588### constructor<sup>8+</sup>
2589
2590constructor()
2591
2592Types的构造函数。
2593
2594**系统能力:** SystemCapability.Utils.Lang
2595
2596**示例:**
2597
2598  ```ts
2599  let type = new util.types();
2600  ```
2601
2602
2603### isAnyArrayBuffer<sup>8+</sup>
2604
2605isAnyArrayBuffer(value: Object): boolean
2606
2607检查输入的value是否是ArrayBuffer类型。
2608
2609**系统能力:** SystemCapability.Utils.Lang
2610
2611**参数:**
2612
2613| 参数名 | 类型 | 必填 | 说明 |
2614| -------- | -------- | -------- | -------- |
2615| value | Object | 是 | 待检测对象。 |
2616
2617**返回值:**
2618
2619| 类型 | 说明 |
2620| -------- | -------- |
2621| boolean | 判断的结果,如果是ArrayBuffer类型为true,反之为false。 |
2622
2623**示例:**
2624
2625  ```ts
2626  let that = new util.types();
2627  let result = that.isAnyArrayBuffer(new ArrayBuffer(0));
2628  ```
2629
2630
2631### isArrayBufferView<sup>8+</sup>
2632
2633isArrayBufferView(value: Object): boolean
2634
2635检查输入的value是否是内置ArrayBufferView辅助类型。
2636
2637ArrayBufferView辅助类型包括:Int8Array、Int16Array、Int32Array、Uint8Array、Uint8ClampedArray、Uint32Array、Float32Array、Float64Array、DataView。
2638
2639**系统能力:** SystemCapability.Utils.Lang
2640
2641**参数:**
2642
2643| 参数名 | 类型 | 必填 | 说明 |
2644| -------- | -------- | -------- | -------- |
2645| value | Object | 是 | 待检测对象。 |
2646
2647**返回值:**
2648
2649| 类型 | 说明 |
2650| -------- | -------- |
2651| boolean | 判断的结果,如果是内置包含的ArrayBufferView辅助类型为true,反之为false。 |
2652
2653**示例:**
2654
2655  ```ts
2656  let that = new util.types();
2657  let result = that.isArrayBufferView(new Int8Array([]));
2658  ```
2659
2660
2661### isArgumentsObject<sup>8+</sup>
2662
2663isArgumentsObject(value: Object): boolean
2664
2665检查输入的value是否是一个arguments对象类型。
2666
2667**系统能力:** SystemCapability.Utils.Lang
2668
2669**参数:**
2670
2671| 参数名 | 类型 | 必填 | 说明 |
2672| -------- | -------- | -------- | -------- |
2673| value | Object | 是 | 待检测对象。 |
2674
2675**返回值:**
2676
2677| 类型 | 说明 |
2678| -------- | -------- |
2679| boolean | 判断的结果,如果是内置包含的arguments类型为true,反之为false。 |
2680
2681**示例:**
2682
2683  ```ts
2684  let that = new util.types();
2685  function foo() {
2686      let result = that.isArgumentsObject(arguments);
2687  }
2688  let f = foo();
2689  ```
2690
2691
2692### isArrayBuffer<sup>8+</sup>
2693
2694isArrayBuffer(value: Object): boolean
2695
2696检查输入的value是否是ArrayBuffer类型。
2697
2698**系统能力:** SystemCapability.Utils.Lang
2699
2700**参数:**
2701
2702| 参数名 | 类型 | 必填 | 说明 |
2703| -------- | -------- | -------- | -------- |
2704| value | Object | 是 | 待检测对象。 |
2705
2706**返回值:**
2707
2708| 类型 | 说明 |
2709| -------- | -------- |
2710| boolean | 判断的结果,如果是内置包含的ArrayBuffer类型为true,反之为false。 |
2711
2712**示例:**
2713
2714  ```ts
2715  let that = new util.types();
2716  let result = that.isArrayBuffer(new ArrayBuffer(0));
2717  ```
2718
2719
2720### isAsyncFunction<sup>8+</sup>
2721
2722isAsyncFunction(value: Object): boolean
2723
2724检查输入的value是否是一个异步函数类型。
2725
2726**系统能力:** SystemCapability.Utils.Lang
2727
2728**参数:**
2729
2730| 参数名 | 类型 | 必填 | 说明 |
2731| -------- | -------- | -------- | -------- |
2732| value | Object | 是 | 待检测对象。 |
2733
2734**返回值:**
2735
2736| 类型 | 说明 |
2737| -------- | -------- |
2738| boolean | 判断的结果,如果是内置包含的异步函数类型为true,反之为false。 |
2739
2740**示例:**
2741
2742  ```ts
2743  let that = new util.types();
2744  let result = that.isAsyncFunction(async () => {});
2745  ```
2746
2747
2748### isBooleanObject<sup>8+</sup>
2749
2750isBooleanObject(value: Object): boolean
2751
2752检查输入的value是否是一个Boolean对象类型。
2753
2754**系统能力:** SystemCapability.Utils.Lang
2755
2756**参数:**
2757
2758| 参数名 | 类型 | 必填 | 说明 |
2759| -------- | -------- | -------- | -------- |
2760| value | Object | 是 | 待检测对象。 |
2761
2762**返回值:**
2763
2764| 类型 | 说明 |
2765| -------- | -------- |
2766| boolean | 判断的结果,如果是内置包含的Boolean对象类型为true,反之为false。 |
2767
2768**示例:**
2769
2770  ```ts
2771  let that = new util.types();
2772  let result = that.isBooleanObject(new Boolean(true));
2773  ```
2774
2775
2776### isBoxedPrimitive<sup>8+</sup>
2777
2778isBoxedPrimitive(value: Object): boolean
2779
2780检查输入的value是否是Boolean或Number或String或Symbol对象类型。
2781
2782**系统能力:** SystemCapability.Utils.Lang
2783
2784**参数:**
2785
2786| 参数名 | 类型 | 必填 | 说明 |
2787| -------- | -------- | -------- | -------- |
2788| value | Object | 是 | 待检测对象。 |
2789
2790**返回值:**
2791
2792| 类型 | 说明 |
2793| -------- | -------- |
2794| boolean | 判断的结果,如果是内置包含的Boolean或Number或String或Symbol对象类型为true,反之为false。 |
2795
2796**示例:**
2797
2798  ```ts
2799  let that = new util.types();
2800  let result = that.isBoxedPrimitive(new Boolean(false));
2801  ```
2802
2803
2804### isDataView<sup>8+</sup>
2805
2806isDataView(value: Object): boolean
2807
2808检查输入的value是否是DataView类型。
2809
2810**系统能力:** SystemCapability.Utils.Lang
2811
2812**参数:**
2813
2814| 参数名 | 类型 | 必填 | 说明 |
2815| -------- | -------- | -------- | -------- |
2816| value | Object | 是 | 待检测对象。 |
2817
2818**返回值:**
2819
2820| 类型 | 说明 |
2821| -------- | -------- |
2822| boolean | 判断的结果,如果是内置包含的DataView对象类型为true,反之为false。 |
2823
2824**示例:**
2825
2826  ```ts
2827  let that = new util.types();
2828  const ab = new ArrayBuffer(20);
2829  let result = that.isDataView(new DataView(ab));
2830  ```
2831
2832
2833### isDate<sup>8+</sup>
2834
2835isDate(value: Object): boolean
2836
2837检查输入的value是否是Date类型。
2838
2839**系统能力:** SystemCapability.Utils.Lang
2840
2841**参数:**
2842
2843| 参数名 | 类型 | 必填 | 说明 |
2844| -------- | -------- | -------- | -------- |
2845| value | Object | 是 | 待检测对象。 |
2846
2847**返回值:**
2848
2849| 类型 | 说明 |
2850| -------- | -------- |
2851| boolean | 判断的结果,如果是内置包含的Date对象类型为true,反之为false。 |
2852
2853**示例:**
2854
2855  ```ts
2856  let that = new util.types();
2857  let result = that.isDate(new Date());
2858  ```
2859
2860
2861### isExternal<sup>8+</sup>
2862
2863isExternal(value: Object): boolean
2864
2865检查输入的value是否是native External类型。
2866
2867**系统能力:** SystemCapability.Utils.Lang
2868
2869**参数:**
2870
2871| 参数名 | 类型 | 必填 | 说明 |
2872| -------- | -------- | -------- | -------- |
2873| value | Object | 是 | 待检测对象。 |
2874
2875**返回值:**
2876
2877| 类型 | 说明 |
2878| -------- | -------- |
2879| boolean | 判断的结果,如果是内置包含native&nbsp;External类型为true,反之为false。 |
2880
2881**示例:**
2882
2883  ```ts
2884  let that = new util.types();
2885  let result = that.isExternal(true);
2886  ```
2887
2888
2889### isFloat32Array<sup>8+</sup>
2890
2891isFloat32Array(value: Object): boolean
2892
2893检查输入的value是否是Float32Array数组类型。
2894
2895**系统能力:** SystemCapability.Utils.Lang
2896
2897**参数:**
2898
2899| 参数名 | 类型 | 必填 | 说明 |
2900| -------- | -------- | -------- | -------- |
2901| value | Object | 是 | 待检测对象。 |
2902
2903**返回值:**
2904
2905| 类型 | 说明 |
2906| -------- | -------- |
2907| boolean | 判断的结果,如果是内置包含的Float32Array数组类型为true,反之为false。 |
2908
2909**示例:**
2910
2911  ```ts
2912  let that = new util.types();
2913  let result = that.isFloat32Array(new Float32Array());
2914  ```
2915
2916
2917### isFloat64Array<sup>8+</sup>
2918
2919isFloat64Array(value: Object): boolean
2920
2921检查输入的value是否是Float64Array数组类型。
2922
2923**系统能力:** SystemCapability.Utils.Lang
2924
2925**参数:**
2926
2927| 参数名 | 类型 | 必填 | 说明 |
2928| -------- | -------- | -------- | -------- |
2929| value | Object | 是 | 待检测对象。 |
2930
2931**返回值:**
2932
2933| 类型 | 说明 |
2934| -------- | -------- |
2935| boolean | 判断的结果,如果是内置包含的Float64Array数组类型为true,反之为false。 |
2936
2937**示例:**
2938
2939  ```ts
2940  let that = new util.types();
2941  let result = that.isFloat64Array(new Float64Array());
2942  ```
2943
2944
2945### isGeneratorFunction<sup>8+</sup>
2946
2947isGeneratorFunction(value: Object): boolean
2948
2949检查输入的value是否是generator函数类型。
2950
2951> **说明:**
2952>
2953> 本接口不支持在.ets文件中使用
2954
2955**系统能力:** SystemCapability.Utils.Lang
2956
2957**参数:**
2958
2959| 参数名 | 类型 | 必填 | 说明 |
2960| -------- | -------- | -------- | -------- |
2961| value | Object | 是 | 待检测对象。 |
2962
2963**返回值:**
2964
2965| 类型 | 说明 |
2966| -------- | -------- |
2967| boolean | 判断的结果,如果是内置包含的generator函数类型为true,反之为false。 |
2968
2969**示例:**
2970
2971  ```ts
2972  let that = new util.types();
2973  let result = that.isGeneratorFunction(function* foo() {});
2974  ```
2975
2976
2977### isGeneratorObject<sup>8+</sup>
2978
2979isGeneratorObject(value: Object): boolean
2980
2981检查输入的value是否是generator对象类型。
2982
2983> **说明:**
2984>
2985> 本接口不支持在.ets文件中使用
2986
2987**系统能力:** SystemCapability.Utils.Lang
2988
2989**参数:**
2990
2991| 参数名 | 类型 | 必填 | 说明 |
2992| -------- | -------- | -------- | -------- |
2993| value | Object | 是 | 待检测对象。 |
2994
2995**返回值:**
2996
2997| 类型 | 说明 |
2998| -------- | -------- |
2999| boolean | 判断的结果,如果是内置包含的generator对象类型为true,反之为false。 |
3000
3001**示例:**
3002
3003  ```ts
3004  // 本接口不支持在.ets文件中使用。
3005  let that = new util.types();
3006  function* foo() {};
3007  const generator = foo();
3008  let result = that.isGeneratorObject(generator);
3009  ```
3010
3011
3012### isInt8Array<sup>8+</sup>
3013
3014isInt8Array(value: Object): boolean
3015
3016检查输入的value是否是Int8Array数组类型。
3017
3018**系统能力:** SystemCapability.Utils.Lang
3019
3020**参数:**
3021
3022| 参数名 | 类型 | 必填 | 说明 |
3023| -------- | -------- | -------- | -------- |
3024| value | Object | 是 | 待检测对象。 |
3025
3026**返回值:**
3027
3028| 类型 | 说明 |
3029| -------- | -------- |
3030| boolean | 判断的结果,如果是内置包含的Int8Array数组类型为true,反之为false。 |
3031
3032**示例:**
3033
3034  ```ts
3035  let that = new util.types();
3036  let result = that.isInt8Array(new Int8Array([]));
3037  ```
3038
3039
3040### isInt16Array<sup>8+</sup>
3041
3042isInt16Array(value: Object): boolean
3043
3044检查输入的value是否是Int16Array数组类型。
3045
3046**系统能力:** SystemCapability.Utils.Lang
3047
3048**参数:**
3049
3050| 参数名 | 类型 | 必填 | 说明 |
3051| -------- | -------- | -------- | -------- |
3052| value | Object | 是 | 待检测对象。 |
3053
3054**返回值:**
3055
3056| 类型 | 说明 |
3057| -------- | -------- |
3058| boolean | 判断的结果,如果是内置包含的Int16Array数组类型为true,反之为false。 |
3059
3060**示例:**
3061
3062  ```ts
3063  let that = new util.types();
3064  let result = that.isInt16Array(new Int16Array([]));
3065  ```
3066
3067
3068### isInt32Array<sup>8+</sup>
3069
3070isInt32Array(value: Object): boolean
3071
3072检查输入的value是否是Int32Array数组类型。
3073
3074**系统能力:** SystemCapability.Utils.Lang
3075
3076**参数:**
3077
3078| 参数名 | 类型 | 必填 | 说明 |
3079| -------- | -------- | -------- | -------- |
3080| value | Object | 是 | 待检测对象。 |
3081
3082**返回值:**
3083
3084| 类型 | 说明 |
3085| -------- | -------- |
3086| boolean | 判断的结果,如果是内置包含的Int32Array数组类型为true,反之为false。 |
3087
3088**示例:**
3089
3090  ```ts
3091  let that = new util.types();
3092  let result = that.isInt32Array(new Int32Array([]));
3093  ```
3094
3095
3096### isMap<sup>8+</sup>
3097
3098isMap(value: Object): boolean
3099
3100检查输入的value是否是Map类型。
3101
3102**系统能力:** SystemCapability.Utils.Lang
3103
3104**参数:**
3105
3106| 参数名 | 类型 | 必填 | 说明 |
3107| -------- | -------- | -------- | -------- |
3108| value | Object | 是 | 待检测对象。 |
3109
3110**返回值:**
3111
3112| 类型 | 说明 |
3113| -------- | -------- |
3114| boolean | 判断的结果,如果是内置包含的Map类型为true,反之为false。 |
3115
3116**示例:**
3117
3118  ```ts
3119  let that = new util.types();
3120  let result = that.isMap(new Map());
3121  ```
3122
3123
3124### isMapIterator<sup>8+</sup>
3125
3126isMapIterator(value: Object): boolean
3127
3128检查输入的value是否是Map的Iterator类型。
3129
3130**系统能力:** SystemCapability.Utils.Lang
3131
3132**参数:**
3133
3134
3135| 参数名 | 类型 | 必填 | 说明 |
3136| -------- | -------- | -------- | -------- |
3137| value | Object | 是 | 待检测对象。 |
3138
3139**返回值:**
3140
3141| 类型 | 说明 |
3142| -------- | -------- |
3143| boolean | 判断的结果,如果是内置包含的Map的Iterator类型为true,反之为false。 |
3144
3145**示例:**
3146
3147  ```ts
3148  let that = new util.types();
3149  const map : Map<number,number> = new Map();
3150  let result = that.isMapIterator(map.keys());
3151  ```
3152
3153
3154### isNativeError<sup>8+</sup>
3155
3156isNativeError(value: Object): boolean
3157
3158检查输入的value是否是Error类型。
3159
3160**系统能力:** SystemCapability.Utils.Lang
3161
3162**参数:**
3163
3164| 参数名 | 类型 | 必填 | 说明 |
3165| -------- | -------- | -------- | -------- |
3166| value | Object | 是 | 待检测对象。 |
3167
3168**返回值:**
3169
3170| 类型 | 说明 |
3171| -------- | -------- |
3172| boolean | 判断的结果,如果是内置包含的Error类型为true,反之为false。 |
3173
3174**示例:**
3175
3176  ```ts
3177  let that = new util.types();
3178  let result = that.isNativeError(new TypeError());
3179  ```
3180
3181
3182### isNumberObject<sup>8+</sup>
3183
3184isNumberObject(value: Object): boolean
3185
3186检查输入的value是否是Number对象类型。
3187
3188**系统能力:** SystemCapability.Utils.Lang
3189
3190**参数:**
3191
3192| 参数名 | 类型 | 必填 | 说明 |
3193| -------- | -------- | -------- | -------- |
3194| value | Object | 是 | 待检测对象。 |
3195
3196**返回值:**
3197
3198| 类型 | 说明 |
3199| -------- | -------- |
3200| boolean | 判断的结果,如果是内置包含的Number对象类型为true,反之为false。 |
3201
3202**示例:**
3203
3204  ```ts
3205  let that = new util.types();
3206  let result = that.isNumberObject(new Number(0));
3207  ```
3208
3209
3210### isPromise<sup>8+</sup>
3211
3212isPromise(value: Object): boolean
3213
3214检查输入的value是否是Promise类型。
3215
3216**系统能力:** SystemCapability.Utils.Lang
3217
3218**参数:**
3219
3220| 参数名 | 类型 | 必填 | 说明 |
3221| -------- | -------- | -------- | -------- |
3222| value | Object | 是 | 待检测对象。 |
3223
3224**返回值:**
3225
3226| 类型 | 说明 |
3227| -------- | -------- |
3228| boolean | 判断的结果,如果是内置包含的Promise类型为true,反之为false。 |
3229
3230**示例:**
3231
3232  ```ts
3233  let that = new util.types();
3234  let result = that.isPromise(Promise.resolve(1));
3235  ```
3236
3237
3238### isProxy<sup>8+</sup>
3239
3240isProxy(value: Object): boolean
3241
3242检查输入的value是否是Proxy类型。
3243
3244**系统能力:** SystemCapability.Utils.Lang
3245
3246**参数:**
3247
3248| 参数名 | 类型 | 必填 | 说明 |
3249| -------- | -------- | -------- | -------- |
3250| value | Object | 是 | 待检测对象。 |
3251
3252**返回值:**
3253
3254| 类型 | 说明 |
3255| -------- | -------- |
3256| boolean | 判断的结果,如果是内置包含的Proxy类型为true,反之为false。 |
3257
3258**示例:**
3259
3260  ```ts
3261  class Target{
3262  }
3263  let that = new util.types();
3264  const target : Target = {};
3265  const proxy = new Proxy(target, target);
3266  let result = that.isProxy(proxy);
3267  ```
3268
3269
3270### isRegExp<sup>8+</sup>
3271
3272isRegExp(value: Object): boolean
3273
3274检查输入的value是否是RegExp类型。
3275
3276**系统能力:** SystemCapability.Utils.Lang
3277
3278**参数:**
3279
3280| 参数名 | 类型 | 必填 | 说明 |
3281| -------- | -------- | -------- | -------- |
3282| value | Object | 是 | 待检测对象。 |
3283
3284**返回值:**
3285
3286| 类型 | 说明 |
3287| -------- | -------- |
3288| boolean | 判断的结果,如果是内置包含的RegExp类型为true,反之为false。 |
3289
3290**示例:**
3291
3292  ```ts
3293  let that = new util.types();
3294  let result = that.isRegExp(new RegExp('abc'));
3295  ```
3296
3297
3298### isSet<sup>8+</sup>
3299
3300isSet(value: Object): boolean
3301
3302检查输入的value是否是Set类型。
3303
3304**系统能力:** SystemCapability.Utils.Lang
3305
3306**参数:**
3307
3308| 参数名 | 类型 | 必填 | 说明 |
3309| -------- | -------- | -------- | -------- |
3310| value | Object | 是 | 待检测对象。 |
3311
3312**返回值:**
3313
3314| 类型 | 说明 |
3315| -------- | -------- |
3316| boolean | 判断的结果,如果是内置包含的Set类型为true,反之为false。 |
3317
3318**示例:**
3319
3320  ```ts
3321  let that = new util.types();
3322  let set : Set<number> = new Set();
3323  let result = that.isSet(set);
3324  ```
3325
3326
3327### isSetIterator<sup>8+</sup>
3328
3329isSetIterator(value: Object): boolean
3330
3331检查输入的value是否是Set的Iterator类型。
3332
3333**系统能力:** SystemCapability.Utils.Lang
3334
3335**参数:**
3336
3337| 参数名 | 类型 | 必填 | 说明 |
3338| -------- | -------- | -------- | -------- |
3339| value | Object | 是 | 待检测对象。 |
3340
3341**返回值:**
3342
3343| 类型 | 说明 |
3344| -------- | -------- |
3345| boolean | 判断的结果,如果是内置包含的Set的Iterator类型为true,反之为false。 |
3346
3347**示例:**
3348
3349  ```ts
3350  let that = new util.types();
3351  const set : Set<number> = new Set();
3352  let result = that.isSetIterator(set.keys());
3353  ```
3354
3355
3356### isStringObject<sup>8+</sup>
3357
3358isStringObject(value: Object): boolean
3359
3360检查输入的value是否是String对象类型。
3361
3362**系统能力:** SystemCapability.Utils.Lang
3363
3364**参数:**
3365
3366| 参数名 | 类型 | 必填 | 说明 |
3367| -------- | -------- | -------- | -------- |
3368| value | Object | 是 | 待检测对象。 |
3369
3370**返回值:**
3371
3372| 类型 | 说明 |
3373| -------- | -------- |
3374| boolean | 判断的结果,如果是内置包含的String对象类型为true,反之为false。 |
3375
3376**示例:**
3377
3378  ```ts
3379  let that = new util.types();
3380  let result = that.isStringObject(new String('foo'));
3381  ```
3382
3383
3384### isSymbolObjec<sup>8+</sup>
3385
3386isSymbolObject(value: Object): boolean
3387
3388检查输入的value是否是Symbol对象类型。
3389
3390> **说明:**
3391>
3392> 本接口不支持在.ets文件中使用
3393
3394**系统能力:** SystemCapability.Utils.Lang
3395
3396**参数:**
3397
3398| 参数名 | 类型 | 必填 | 说明 |
3399| -------- | -------- | -------- | -------- |
3400| value | Object | 是 | 待检测对象。 |
3401
3402**返回值:**
3403
3404| 类型 | 说明 |
3405| -------- | -------- |
3406| boolean | 判断的结果,如果是内置包含的Symbol对象类型为true,反之为false。 |
3407
3408**示例:**
3409
3410  ```ts
3411  // 本接口不支持在.ets文件中使用。
3412  let that = new util.types();
3413  const symbols = Symbol('foo');
3414  let result = that.isSymbolObject(Object(symbols));
3415  ```
3416
3417
3418### isTypedArray<sup>8+</sup>
3419
3420isTypedArray(value: Object): boolean
3421
3422检查输入的value是否是TypedArray类型的辅助类型。
3423
3424TypedArray类型的辅助类型,包括Int8Array、Int16Array、Int32Array、Uint8Array、Uint8ClampedArray、Uint16Array、Uint32Array、Float32Array、Float64Array、DataView。
3425
3426**系统能力:** SystemCapability.Utils.Lang
3427
3428**参数:**
3429
3430| 参数名 | 类型 | 必填 | 说明 |
3431| -------- | -------- | -------- | -------- |
3432| value | Object | 是 | 待检测对象。 |
3433
3434**返回值:**
3435
3436| 类型 | 说明 |
3437| -------- | -------- |
3438| boolean | 判断的结果,如果是内置包含的TypedArray包含的类型为true,反之为false。 |
3439
3440**示例:**
3441
3442  ```ts
3443  let that = new util.types();
3444  let result = that.isTypedArray(new Float64Array([]));
3445  ```
3446
3447
3448### isUint8Array<sup>8+</sup>
3449
3450isUint8Array(value: Object): boolean
3451
3452检查输入的value是否是Uint8Array数组类型。
3453
3454**系统能力:** SystemCapability.Utils.Lang
3455
3456**参数:**
3457
3458| 参数名 | 类型 | 必填 | 说明 |
3459| -------- | -------- | -------- | -------- |
3460| value | Object | 是 | 待检测对象。 |
3461
3462**返回值:**
3463
3464| 类型 | 说明 |
3465| -------- | -------- |
3466| boolean | 判断的结果,如果是内置包含的Uint8Array数组类型为true,反之为false。 |
3467
3468**示例:**
3469
3470  ```ts
3471  let that = new util.types();
3472  let result = that.isUint8Array(new Uint8Array([]));
3473  ```
3474
3475
3476### isUint8ClampedArray<sup>8+</sup>
3477
3478isUint8ClampedArray(value: Object): boolean
3479
3480检查输入的value是否是Uint8ClampedArray数组类型。
3481
3482**系统能力:** SystemCapability.Utils.Lang
3483
3484**参数:**
3485
3486| 参数名 | 类型 | 必填 | 说明 |
3487| -------- | -------- | -------- | -------- |
3488| value | Object | 是 | 待检测对象。 |
3489
3490**返回值:**
3491
3492| 类型 | 说明 |
3493| -------- | -------- |
3494| boolean | 判断的结果,如果是内置包含的Uint8ClampedArray数组类型为true,反之为false。 |
3495
3496**示例:**
3497
3498  ```ts
3499  let that = new util.types();
3500  let result = that.isUint8ClampedArray(new Uint8ClampedArray([]));
3501  ```
3502
3503
3504### isUint16Array<sup>8+</sup>
3505
3506isUint16Array(value: Object): boolean
3507
3508检查输入的value是否是Uint16Array数组类型。
3509
3510**系统能力:** SystemCapability.Utils.Lang
3511
3512**参数:**
3513
3514| 参数名 | 类型 | 必填 | 说明 |
3515| -------- | -------- | -------- | -------- |
3516| value | Object | 是 | 待检测对象。 |
3517
3518**返回值:**
3519
3520| 类型 | 说明 |
3521| -------- | -------- |
3522| boolean | 判断的结果,如果是内置包含的Uint16Array数组类型为true,反之为false。 |
3523
3524**示例:**
3525
3526  ```ts
3527  let that = new util.types();
3528  let result = that.isUint16Array(new Uint16Array([]));
3529  ```
3530
3531
3532### isUint32Array<sup>8+</sup>
3533
3534isUint32Array(value: Object): boolean
3535
3536检查输入的value是否是Uint32Array数组类型。
3537
3538**系统能力:** SystemCapability.Utils.Lang
3539
3540**参数:**
3541
3542| 参数名 | 类型 | 必填 | 说明 |
3543| -------- | -------- | -------- | -------- |
3544| value | Object | 是 | 待检测对象。 |
3545
3546**返回值:**
3547
3548| 类型 | 说明 |
3549| -------- | -------- |
3550| boolean | 判断的结果,如果是内置包含的Uint32Array数组类型为true,反之为false。 |
3551
3552**示例:**
3553
3554  ```ts
3555  let that = new util.types();
3556  let result = that.isUint32Array(new Uint32Array([]));
3557  ```
3558
3559
3560### isWeakMap<sup>8+</sup>
3561
3562isWeakMap(value: Object): boolean
3563
3564检查输入的value是否是WeakMap类型。
3565
3566**系统能力:** SystemCapability.Utils.Lang
3567
3568**参数:**
3569
3570| 参数名 | 类型 | 必填 | 说明 |
3571| -------- | -------- | -------- | -------- |
3572| value | Object | 是 | 待检测对象。 |
3573
3574**返回值:**
3575
3576| 类型 | 说明 |
3577| -------- | -------- |
3578| boolean | 判断的结果,如果是内置包含的WeakMap类型为true,反之为false。 |
3579
3580**示例:**
3581
3582  ```ts
3583  let that = new util.types();
3584  let value : WeakMap<object, number> = new WeakMap();
3585  let result = that.isWeakMap(value);
3586  ```
3587
3588
3589### isWeakSet<sup>8+</sup>
3590
3591isWeakSet(value: Object): boolean
3592
3593检查输入的value是否是WeakSet类型。
3594
3595**系统能力:** SystemCapability.Utils.Lang
3596
3597**参数:**
3598
3599| 参数名 | 类型 | 必填 | 说明 |
3600| -------- | -------- | -------- | -------- |
3601| value | Object | 是 | 待检测对象。 |
3602
3603**返回值:**
3604
3605| 类型 | 说明 |
3606| -------- | -------- |
3607| boolean | 判断的结果,如果是内置包含的WeakSet类型为true,反之为false。 |
3608
3609**示例:**
3610
3611  ```ts
3612  let that = new util.types();
3613  let result = that.isWeakSet(new WeakSet());
3614  ```
3615
3616
3617### isBigInt64Array<sup>8+</sup>
3618
3619isBigInt64Array(value: Object): boolean
3620
3621检查输入的value是否是BigInt64Array类型。
3622
3623**系统能力:** SystemCapability.Utils.Lang
3624
3625**参数:**
3626
3627| 参数名 | 类型 | 必填 | 说明 |
3628| -------- | -------- | -------- | -------- |
3629| value | Object | 是 | 待检测对象。 |
3630
3631**返回值:**
3632
3633| 类型 | 说明 |
3634| -------- | -------- |
3635| boolean | 判断的结果,如果是内置包含的BigInt64Array类型为true,反之为false。 |
3636
3637**示例:**
3638
3639  ```ts
3640  let that = new util.types();
3641  let result = that.isBigInt64Array(new BigInt64Array([]));
3642  ```
3643
3644
3645### isBigUint64Array<sup>8+</sup>
3646
3647isBigUint64Array(value: Object): boolean
3648
3649检查输入的value是否是BigUint64Array类型。
3650
3651**系统能力:** SystemCapability.Utils.Lang
3652
3653**参数:**
3654
3655| 参数名 | 类型 | 必填 | 说明 |
3656| -------- | -------- | -------- | -------- |
3657| value | Object | 是 | 待检测对象。 |
3658
3659**返回值:**
3660
3661| 类型 | 说明 |
3662| -------- | -------- |
3663| boolean | 判断的结果,如果是内置包含的BigUint64Array类型为true,反之为false。 |
3664
3665**示例:**
3666
3667  ```ts
3668  let that = new util.types();
3669  let result = that.isBigUint64Array(new BigUint64Array([]));
3670  ```
3671
3672
3673### isModuleNamespaceObject<sup>8+</sup>
3674
3675isModuleNamespaceObject(value: Object): boolean
3676
3677检查输入的value是否是Module Namespace Object类型。
3678
3679> **说明:**
3680>
3681> 本接口不支持在.ets文件中使用
3682
3683**系统能力:** SystemCapability.Utils.Lang
3684
3685**参数:**
3686
3687| 参数名 | 类型 | 必填 | 说明 |
3688| -------- | -------- | -------- | -------- |
3689| value | Object | 是 | 待检测对象。 |
3690
3691**返回值:**
3692
3693| 类型 | 说明 |
3694| -------- | -------- |
3695| boolean | 判断的结果,如果是内置包含的Module Namespace Object类型为true,反之为false。 |
3696
3697**示例:**
3698
3699  ```ts
3700  // 本接口不支持在.ets文件中使用。
3701  import url from '@ohos.url'
3702  let that = new util.types();
3703  let result = that.isModuleNamespaceObject(url);
3704  ```
3705
3706
3707### isSharedArrayBuffer<sup>8+</sup>
3708
3709isSharedArrayBuffer(value: Object): boolean
3710
3711检查输入的value是否是SharedArrayBuffer类型。
3712
3713**系统能力:** SystemCapability.Utils.Lang
3714
3715**参数:**
3716
3717| 参数名 | 类型 | 必填 | 说明 |
3718| -------- | -------- | -------- | -------- |
3719| value | Object | 是 | 待检测对象。 |
3720
3721**返回值:**
3722
3723| 类型 | 说明 |
3724| -------- | -------- |
3725| boolean | 判断的结果,如果是内置包含的SharedArrayBuffer类型为true,反之为false。 |
3726
3727**示例:**
3728
3729  ```ts
3730  let that = new util.types();
3731  let result = that.isSharedArrayBuffer(new SharedArrayBuffer(0));
3732  ```
3733
3734## LruBuffer<sup>(deprecated)</sup>
3735
3736> **说明:**
3737>
3738> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache<sup>9+</sup>](#lrucache9)替代。
3739
3740### 属性
3741
3742**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang3743
3744| 名称 | 类型 | 可读 | 可写 | 说明 |
3745| -------- | -------- | -------- | -------- | -------- |
3746| length | number | 是 | 否 | 当前缓冲区中值的总数。 |
3747
3748**示例:**
3749
3750  ```ts
3751  let pro : util.LruBuffer<number,number>= new util.LruBuffer();
3752  pro.put(2,10);
3753  pro.put(1,8);
3754  let result = pro.length;
3755  ```
3756
3757### constructor<sup>(deprecated)</sup>
3758
3759constructor(capacity?: number)
3760
3761默认构造函数用于创建一个新的LruBuffer实例,默认容量为64。
3762
3763> **说明:**
3764>
3765> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.constructor<sup>9+</sup>](#constructor9-3)替代。
3766
3767**系统能力:** SystemCapability.Utils.Lang
3768
3769**参数:**
3770
3771| 参数名 | 类型 | 必填 | 说明 |
3772| -------- | -------- | -------- | -------- |
3773| capacity | number | 否 | 指示要为缓冲区自定义的容量,默认值为64。 |
3774
3775**示例:**
3776
3777  ```ts
3778  let lrubuffer : util.LruBuffer<number,number> = new util.LruBuffer();
3779  ```
3780
3781### updateCapacity<sup>(deprecated)</sup>
3782
3783updateCapacity(newCapacity: number): void
3784
3785将缓冲区容量更新为指定容量,如果newCapacity小于或等于0,则抛出异常。
3786
3787> **说明:**
3788>
3789> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.updateCapacity<sup>9+</sup>](#updatecapacity9)替代。
3790
3791**系统能力:** SystemCapability.Utils.Lang
3792
3793**参数:**
3794
3795| 参数名 | 类型 | 必填 | 说明 |
3796| -------- | -------- | -------- | -------- |
3797| newCapacity | number | 是 | 指示要为缓冲区自定义的容量。 |
3798
3799**示例:**
3800
3801  ```ts
3802  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
3803  pro.updateCapacity(100);
3804  ```
3805
3806### toString<sup>(deprecated)</sup>
3807
3808toString(): string
3809
3810返回对象的字符串表示形式。
3811
3812> **说明:**
3813>
3814> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.toString<sup>9+</sup>](#tostring9)替代。
3815
3816**系统能力:** SystemCapability.Utils.Lang
3817
3818**返回值:**
3819
3820| 类型 | 说明 |
3821| -------- | -------- |
3822| string | 返回对象的字符串表示形式。 |
3823
3824**示例:**
3825
3826  ```ts
3827  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
3828  pro.put(2,10);
3829  pro.get(2);
3830  pro.remove(20);
3831  let result = pro.toString();
3832  ```
3833
3834### getCapacity<sup>(deprecated)</sup>
3835
3836getCapacity(): number
3837
3838获取当前缓冲区的容量。
3839
3840> **说明:**
3841>
3842> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.getCapacity<sup>9+</sup>](#getcapacity9)替代。
3843
3844**系统能力:** SystemCapability.Utils.Lang
3845
3846**返回值:**
3847
3848| 类型 | 说明 |
3849| -------- | -------- |
3850| number | 返回当前缓冲区的容量。 |
3851
3852**示例:**
3853
3854  ```ts
3855  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
3856  let result = pro.getCapacity();
3857  ```
3858
3859### clear<sup>(deprecated)</sup>
3860
3861clear(): void
3862
3863从当前缓冲区清除键值对。后续会调用afterRemoval()方法执行后续操作。
3864
3865> **说明:**
3866>
3867> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.clear<sup>9+</sup>](#clear9)替代。
3868
3869**系统能力:** SystemCapability.Utils.Lang
3870
3871**示例:**
3872
3873  ```ts
3874  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
3875  pro.put(2,10);
3876  let result = pro.length;
3877  pro.clear();
3878  ```
3879
3880### getCreateCount<sup>(deprecated)</sup>
3881
3882getCreateCount(): number
3883
3884获取createDefault()返回值的次数。
3885
3886> **说明:**
3887>
3888> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.getCreateCount<sup>9+</sup>](#getcreatecount9)替代。
3889
3890**系统能力:** SystemCapability.Utils.Lang
3891
3892**返回值:**
3893
3894| 类型 | 说明 |
3895| -------- | -------- |
3896| number | 返回createDefault()返回值的次数。 |
3897
3898**示例:**
3899
3900  ```ts
3901  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
3902  pro.put(1,8);
3903  let result = pro.getCreateCount();
3904  ```
3905
3906### getMissCount<sup>(deprecated)</sup>
3907
3908getMissCount(): number
3909
3910获取查询值不匹配的次数。
3911
3912> **说明:**
3913>
3914> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.getMissCount<sup>9+</sup>](#getmisscount9)替代。
3915
3916**系统能力:** SystemCapability.Utils.Lang
3917
3918**返回值:**
3919
3920| 类型 | 说明 |
3921| -------- | -------- |
3922| number | 返回查询值不匹配的次数。 |
3923
3924**示例:**
3925
3926  ```ts
3927  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
3928  pro.put(2,10);
3929  pro.get(2);
3930  let result = pro.getMissCount();
3931  ```
3932
3933### getRemovalCount<sup>(deprecated)</sup>
3934
3935getRemovalCount(): number
3936
3937获取从缓冲区中逐出值的次数。
3938
3939> **说明:**
3940>
3941> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.getRemovalCount<sup>9+</sup>](#getremovalcount9)替代。
3942
3943**系统能力:** SystemCapability.Utils.Lang
3944
3945**返回值:**
3946
3947| 类型 | 说明 |
3948| -------- | -------- |
3949| number | 返回从缓冲区中驱逐的次数。 |
3950
3951**示例:**
3952
3953  ```ts
3954  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
3955  pro.put(2,10);
3956  pro.updateCapacity(2);
3957  pro.put(50,22);
3958  let result = pro.getRemovalCount();
3959  ```
3960
3961### getMatchCount<sup>(deprecated)</sup>
3962
3963getMatchCount(): number
3964
3965获取查询值匹配成功的次数。
3966
3967> **说明:**
3968>
3969> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.getMatchCount<sup>9+</sup>](#getmatchcount9)替代。
3970
3971**系统能力:** SystemCapability.Utils.Lang
3972
3973**返回值:**
3974
3975| 类型 | 说明 |
3976| -------- | -------- |
3977| number | 返回查询值匹配成功的次数。 |
3978
3979**示例:**
3980
3981  ```ts
3982  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
3983  pro.put(2,10);
3984  pro.get(2);
3985  let result = pro.getMatchCount();
3986  ```
3987
3988### getPutCount<sup>(deprecated)</sup>
3989
3990getPutCount(): number
3991
3992获取将值添加到缓冲区的次数。
3993
3994> **说明:**
3995>
3996> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.getPutCount<sup>9+</sup>](#getputcount9)替代。
3997
3998**系统能力:** SystemCapability.Utils.Lang
3999
4000**返回值:**
4001
4002| 类型 | 说明 |
4003| -------- | -------- |
4004| number | 返回将值添加到缓冲区的次数。 |
4005
4006**示例:**
4007
4008  ```ts
4009  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4010  pro.put(2,10);
4011  let result = pro.getPutCount();
4012  ```
4013
4014### isEmpty<sup>(deprecated)</sup>
4015
4016isEmpty(): boolean
4017
4018检查当前缓冲区是否为空。
4019
4020> **说明:**
4021>
4022> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.isEmpty<sup>9+</sup>](#isempty9)替代。
4023
4024**系统能力:** SystemCapability.Utils.Lang
4025
4026**返回值:**
4027
4028| 类型 | 说明 |
4029| -------- | -------- |
4030| boolean | 如果当前缓冲区不包含任何值,则返回true。 |
4031
4032**示例:**
4033
4034  ```ts
4035  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4036  pro.put(2,10);
4037  let result = pro.isEmpty();
4038  ```
4039
4040### get<sup>(deprecated)</sup>
4041
4042get(key: K): V | undefined
4043
4044表示要查询的键。
4045
4046> **说明:**
4047>
4048> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.get<sup>9+</sup>](#get9)替代。
4049
4050**系统能力:** SystemCapability.Utils.Lang
4051
4052**参数:**
4053
4054| 参数名 | 类型 | 必填 | 说明 |
4055| -------- | -------- | -------- | -------- |
4056| key | K | 是 | 要查询的键。 |
4057
4058**返回值:**
4059
4060| 类型 | 说明 |
4061| -------- | -------- |
4062| V&nbsp;\|&nbsp;undefined | 如果指定的键存在于缓冲区中,则返回与键关联的值;否则返回undefined。 |
4063
4064**示例:**
4065
4066  ```ts
4067  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4068  pro.put(2,10);
4069  let result  = pro.get(2);
4070  ```
4071
4072### put<sup>(deprecated)</sup>
4073
4074put(key: K,value: V): V
4075
4076将键值对添加到缓冲区。
4077
4078> **说明:**
4079>
4080> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.put<sup>9+</sup>](#put9)替代。
4081
4082**系统能力:** SystemCapability.Utils.Lang
4083
4084**参数:**
4085
4086| 参数名 | 类型 | 必填 | 说明 |
4087| -------- | -------- | -------- | -------- |
4088| key | K | 是 | 要添加的密钥。 |
4089| value | V | 是 | 指示与要添加的键关联的值。 |
4090
4091**返回值:**
4092
4093| 类型 | 说明 |
4094| -------- | -------- |
4095| V | 返回与添加的键关联的值;如果要添加的键已经存在,则返回原始值,如果键或值为空,则抛出此异常。 |
4096
4097**示例:**
4098
4099  ```ts
4100  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4101  let result = pro.put(2,10);
4102  ```
4103
4104### values<sup>(deprecated)</sup>
4105
4106values(): V[]
4107
4108获取当前缓冲区中所有值从最近访问到最近最少访问的顺序列表。
4109
4110> **说明:**
4111>
4112> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.values<sup>9+</sup>](#values9)替代。
4113
4114**系统能力:** SystemCapability.Utils.Lang
4115
4116**返回值:**
4117
4118| 类型 | 说明 |
4119| -------- | -------- |
4120| V&nbsp;[] | 按从最近访问到最近最少访问的顺序返回当前缓冲区中所有值的列表。 |
4121
4122**示例:**
4123
4124  ```ts
4125  let pro : util.LruBuffer<number|string,number|string> = new util.LruBuffer();
4126  pro.put(2,10);
4127  pro.put(2,"anhu");
4128  pro.put("afaf","grfb");
4129  let result = pro.values();
4130  ```
4131
4132### keys<sup>(deprecated)</sup>
4133
4134keys(): K[]
4135
4136获取当前缓冲区中所有键从最近访问到最近最少访问的升序列表。
4137
4138> **说明:**
4139>
4140> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.keys<sup>9+</sup>](#keys9)替代。
4141
4142**系统能力:** SystemCapability.Utils.Lang
4143
4144**返回值:**
4145
4146| 类型 | 说明 |
4147| -------- | -------- |
4148| K&nbsp;[] | 按升序返回当前缓冲区中所有键的列表,从最近访问到最近最少访问。 |
4149
4150**示例:**
4151
4152  ```ts
4153  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4154  pro.put(2,10);
4155  let result = pro.keys();
4156  ```
4157
4158### remove<sup>(deprecated)</sup>
4159
4160remove(key: K): V | undefined
4161
4162从当前缓冲区中删除指定的键及其关联的值。
4163
4164> **说明:**
4165>
4166> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.remove<sup>9+</sup>](#remove9)替代。
4167
4168**系统能力:** SystemCapability.Utils.Lang
4169
4170**参数:**
4171
4172| 参数名 | 类型 | 必填 | 说明 |
4173| -------- | -------- | -------- | -------- |
4174| key | K | 是 | 要删除的密钥。 |
4175
4176**返回值:**
4177
4178| 类型 | 说明 |
4179| -------- | -------- |
4180| V&nbsp;\|&nbsp;undefined | 返回一个包含已删除键值对的Optional对象;如果key不存在,则返回一个空的Optional对象,如果key为null,则抛出异常。 |
4181
4182**示例:**
4183
4184  ```ts
4185  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4186  pro.put(2,10);
4187  let result = pro.remove(20);
4188  ```
4189
4190### afterRemoval<sup>(deprecated)</sup>
4191
4192afterRemoval(isEvict: boolean,key: K,value: V,newValue: V): void
4193
4194删除值后执行后续操作。
4195
4196> **说明:**
4197>
4198> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.afterRemoval<sup>9+</sup>](#afterremoval9)替代。
4199
4200**系统能力:** SystemCapability.Utils.Lang
4201
4202**参数:**
4203
4204| 参数名 | 类型 | 必填 | 说明 |
4205| -------- | -------- | -------- | -------- |
4206| isEvict | boolean | 是 | 因容量不足而调用该方法时,参数值为true,其他情况为false。 |
4207| key | K | 是 | 表示删除的键。 |
4208| value | V | 是 | 表示删除的值。 |
4209| newValue | V | 是 | 如果已调用put方法并且要添加的键已经存在,则参数值是关联的新值。其他情况下参数值为空。 |
4210
4211**示例:**
4212
4213```ts
4214class ChildLruBuffer<K, V> extends util.LruBuffer<K, V> {
4215  constructor(capacity?: number) {
4216    super(capacity);
4217  }
4218
4219  afterRemoval(isEvict: boolean, key: K, value: V, newValue: V): void {
4220    if (isEvict === true) {
4221      console.info('key: ' + key);
4222      console.info('value: ' + value);
4223      console.info('newValue: ' + newValue);
4224    }
4225  }
4226}
4227let lru: ChildLruBuffer<number, number> = new ChildLruBuffer(2);
4228lru.put(11, 1);
4229lru.put(22, 2);
4230lru.put(33, 3);
4231```
4232
4233### contains<sup>(deprecated)</sup>
4234
4235contains(key: K): boolean
4236
4237检查当前缓冲区是否包含指定的键。
4238
4239
4240> **说明:**
4241>
4242> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.contains<sup>9+</sup>](#contains9)替代。
4243
4244**系统能力:** SystemCapability.Utils.Lang
4245
4246**参数:**
4247
4248| 参数名 | 类型 | 必填 | 说明 |
4249| -------- | -------- | -------- | -------- |
4250| key | K | 是 | 表示要检查的键。 |
4251
4252**返回值:**
4253
4254| 类型 | 说明 |
4255| -------- | -------- |
4256| boolean | 如果缓冲区包含指定的键,则返回&nbsp;true。 |
4257
4258**示例:**
4259
4260  ```ts
4261  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4262  pro.put(2,10);
4263  let result = pro.contains(20);
4264  ```
4265
4266### createDefault<sup>(deprecated)</sup>
4267
4268createDefault(key: K): V
4269
4270如果未计算特定键的值,则执行后续操作,参数表示丢失的键,返回与键关联的值。
4271
4272> **说明:**
4273>
4274> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.createDefault<sup>9+</sup>](#createdefault9)替代。
4275
4276**系统能力:** SystemCapability.Utils.Lang
4277
4278**参数:**
4279
4280| 参数名 | 类型 | 必填 | 说明 |
4281| -------- | -------- | -------- | -------- |
4282| key | K | 是 | 表示丢失的键。 |
4283
4284**返回值:**
4285
4286| 类型 | 说明 |
4287| -------- | -------- |
4288| V | 返回与键关联的值。 |
4289
4290**示例:**
4291
4292  ```ts
4293  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4294  let result = pro.createDefault(50);
4295  ```
4296
4297### entries<sup>(deprecated)</sup>
4298
4299entries(): IterableIterator&lt;[K,V]&gt;
4300
4301允许迭代包含在这个对象中的所有键值对。
4302
4303> **说明:**
4304>
4305> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.entries<sup>9+</sup>](#entries9)替代。
4306
4307**系统能力:** SystemCapability.Utils.Lang
4308
4309**返回值:**
4310
4311| 类型 | 说明 |
4312| -------- | -------- |
4313| [K,&nbsp;V] | 返回一个可迭代数组。 |
4314
4315**示例:**
4316
4317  ```ts
4318  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4319  pro.put(2,10);
4320  let result = pro.entries();
4321  ```
4322
4323### [Symbol.iterator]<sup>(deprecated)</sup>
4324
4325[Symbol.iterator]\(): IterableIterator&lt;[K, V]&gt;
4326
4327返回一个键值对形式的二维数组。
4328
4329> **说明:**
4330>
4331> 从API version 8开始支持,从API version 9开始废弃,建议使用[LRUCache.Symbol.iterator<sup>9+</sup>](#symboliterator9)替代。
4332
4333**系统能力:** SystemCapability.Utils.Lang
4334
4335**返回值:**
4336
4337| 类型 | 说明 |
4338| -------- | -------- |
4339| [K,&nbsp;V] | 返回一个键值对形式的二维数组。 |
4340
4341**示例:**
4342
4343  ```ts
4344  let pro : util.LruBuffer<number,number> = new util.LruBuffer();
4345  pro.put(2,10);
4346  let result = pro[Symbol.iterator]();
4347  ```
4348
4349## Scope<sup>(deprecated)</sup>
4350
4351> **说明:**
4352>
4353> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper<sup>9+</sup>](#scopehelper9)替代。
4354
4355### constructor<sup>(deprecated)</sup>
4356
4357constructor(lowerObj: ScopeType, upperObj: ScopeType)
4358
4359用于创建指定下限和上限的作用域实例的构造函数,返回一个Scope对象。
4360
4361> **说明:**
4362>
4363> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.constructor<sup>9+</sup>](#constructor9-4)替代。
4364
4365
4366**系统能力:** SystemCapability.Utils.Lang
4367
4368**参数:**
4369
4370| 参数名 | 类型 | 必填 | 说明 |
4371| -------- | -------- | -------- | -------- |
4372| lowerObj | [ScopeType](#scopetype8) | 是 | 指定作用域实例的下限。 |
4373| upperObj | [ScopeType](#scopetype8) | 是 | 指定作用域实例的上限。 |
4374
4375**示例:**
4376  ```ts
4377  class Temperature{
4378    private readonly _temp: number;
4379    constructor(value : number) {
4380      this._temp = value;
4381    }
4382    compareTo(value : Temperature ) {
4383      return this._temp >= value.getTemp();
4384    }
4385    getTemp() {
4386      return this._temp;
4387    }
4388    toString() : string {
4389      return this._temp.toString();
4390    }
4391  }
4392  let tempLower = new Temperature(30);
4393  let tempUpper = new Temperature(40);
4394  let range = new util.Scope(tempLower, tempUpper);
4395  ```
4396
4397### toString<sup>(deprecated)</sup>
4398
4399toString(): string
4400
4401该字符串化方法返回一个包含当前范围的字符串表示形式。
4402
4403> **说明:**
4404>
4405> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.toString<sup>9+</sup>](#tostring9-1)替代。
4406
4407**系统能力:** SystemCapability.Utils.Lang
4408
4409**返回值:**
4410
4411| 类型 | 说明 |
4412| -------- | -------- |
4413| string | 返回包含当前范围对象的字符串表示形式。 |
4414
4415**示例:**
4416
4417  ```ts
4418  class Temperature{
4419    private readonly _temp: number;
4420    constructor(value : number) {
4421      this._temp = value;
4422    }
4423    compareTo(value : Temperature ) {
4424      return this._temp >= value.getTemp();
4425    }
4426    getTemp() {
4427      return this._temp;
4428    }
4429    toString() : string {
4430      return this._temp.toString();
4431    }
4432  }
4433
4434  let tempLower = new Temperature(30);
4435  let tempUpper = new Temperature(40);
4436  let range = new util.Scope(tempLower, tempUpper);
4437  let result = range.toString();
4438  ```
4439
4440### intersect<sup>(deprecated)</sup>
4441
4442intersect(range: Scope): Scope
4443
4444获取给定范围和当前范围的交集。
4445
4446> **说明:**
4447>
4448> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.intersect<sup>9+</sup>](#intersect9)替代。
4449
4450**系统能力:** SystemCapability.Utils.Lang
4451
4452**参数:**
4453
4454| 参数名 | 类型 | 必填 | 说明 |
4455| -------- | -------- | -------- | -------- |
4456| range | [Scope](#scopedeprecated) | 是 | 传入一个给定范围。 |
4457
4458**返回值:**
4459
4460| 类型 | 说明 |
4461| -------- | -------- |
4462| [Scope](#scopedeprecated) | 返回给定范围和当前范围的交集。 |
4463
4464**示例:**
4465
4466  ```ts
4467  class Temperature{
4468    private readonly _temp: number;
4469    constructor(value : number) {
4470      this._temp = value;
4471    }
4472    compareTo(value : Temperature ) {
4473      return this._temp >= value.getTemp();
4474    }
4475    getTemp() {
4476      return this._temp;
4477    }
4478    toString() : string {
4479      return this._temp.toString();
4480    }
4481  }
4482
4483  let tempLower = new Temperature(30);
4484  let tempUpper = new Temperature(40);
4485  let range = new util.Scope(tempLower, tempUpper);
4486  let tempMiDF = new Temperature(35);
4487  let tempMidS = new Temperature(39);
4488  let rangeFir = new util.Scope(tempMiDF, tempMidS);
4489  let result = range.intersect(rangeFir );
4490  ```
4491
4492### intersect<sup>(deprecated)</sup>
4493
4494intersect(lowerObj:ScopeType,upperObj:ScopeType):Scope
4495
4496获取当前范围与给定下限和上限范围的交集。
4497
4498> **说明:**
4499>
4500> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.intersect<sup>9+</sup>](#intersect9-1)替代。
4501
4502**系统能力:** SystemCapability.Utils.Lang
4503
4504**参数:**
4505
4506| 参数名 | 类型 | 必填 | 说明 |
4507| -------- | -------- | -------- | -------- |
4508| lowerObj | [ScopeType](#scopetype8) | 是 | 给定范围的下限。 |
4509| upperObj | [ScopeType](#scopetype8) | 是 | 给定范围的上限。 |
4510
4511**返回值:**
4512
4513| 类型 | 说明 |
4514| -------- | -------- |
4515| [Scope](#scopedeprecated) | 返回当前范围与给定下限和上限范围的交集。 |
4516
4517**示例:**
4518
4519  ```ts
4520  class Temperature{
4521    private readonly _temp: number;
4522    constructor(value : number) {
4523      this._temp = value;
4524    }
4525    compareTo(value : Temperature ) {
4526      return this._temp >= value.getTemp();
4527    }
4528    getTemp() {
4529      return this._temp;
4530    }
4531    toString() : string {
4532      return this._temp.toString();
4533    }
4534  }
4535
4536  let tempLower = new Temperature(30);
4537  let tempUpper = new Temperature(40);
4538  let tempMiDF = new Temperature(35);
4539  let tempMidS = new Temperature(39);
4540  let range = new util.Scope(tempLower, tempUpper);
4541  let result = range.intersect(tempMiDF, tempMidS);
4542  ```
4543
4544### getUpper<sup>(deprecated)</sup>
4545
4546getUpper(): ScopeType
4547
4548获取当前范围的上限。
4549
4550> **说明:**
4551>
4552> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.getUpper<sup>9+</sup>](#getupper9)替代。
4553
4554**系统能力:** SystemCapability.Utils.Lang
4555
4556**返回值:**
4557
4558| 类型 | 说明 |
4559| -------- | -------- |
4560| [ScopeType](#scopetype8) | 返回当前范围的上限值。 |
4561
4562**示例:**
4563
4564  ```ts
4565  class Temperature{
4566    private readonly _temp: number;
4567    constructor(value : number) {
4568      this._temp = value;
4569    }
4570    compareTo(value : Temperature ) {
4571      return this._temp >= value.getTemp();
4572    }
4573    getTemp() {
4574      return this._temp;
4575    }
4576    toString() : string {
4577      return this._temp.toString();
4578    }
4579  }
4580
4581  let tempLower = new Temperature(30);
4582  let tempUpper = new Temperature(40);
4583  let range = new util.Scope(tempLower, tempUpper);
4584  let result = range.getUpper();
4585  ```
4586
4587### getLower<sup>(deprecated)</sup>
4588
4589getLower(): ScopeType
4590
4591获取当前范围的下限。
4592
4593> **说明:**
4594>
4595> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.getLower<sup>9+</sup>](#getlower9)替代。
4596
4597**系统能力:** SystemCapability.Utils.Lang
4598
4599**返回值:**
4600
4601| 类型 | 说明 |
4602| -------- | -------- |
4603| [ScopeType](#scopetype8) | 返回当前范围的下限值。 |
4604
4605**示例:**
4606
4607  ```ts
4608  class Temperature{
4609    private readonly _temp: number;
4610    constructor(value : number) {
4611      this._temp = value;
4612    }
4613    compareTo(value : Temperature ) {
4614      return this._temp >= value.getTemp();
4615    }
4616    getTemp() {
4617      return this._temp;
4618    }
4619    toString() : string {
4620      return this._temp.toString();
4621    }
4622  }
4623
4624  let tempLower = new Temperature(30);
4625  let tempUpper = new Temperature(40);
4626  let range = new util.Scope(tempLower, tempUpper);
4627  let result = range.getLower();
4628  ```
4629
4630### expand<sup>(deprecated)</sup>
4631
4632expand(lowerObj: ScopeType,upperObj: ScopeType): Scope
4633
4634创建并返回包括当前范围和给定下限和上限的并集。
4635
4636> **说明:**
4637>
4638> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.expand<sup>9+</sup>](#expand9)替代。
4639
4640**系统能力:** SystemCapability.Utils.Lang
4641
4642**参数:**
4643
4644| 参数名 | 类型 | 必填 | 说明 |
4645| -------- | -------- | -------- | -------- |
4646| lowerObj | [ScopeType](#scopetype8) | 是 | 给定范围的下限。 |
4647| upperObj | [ScopeType](#scopetype8) | 是 | 给定范围的上限。 |
4648
4649**返回值:**
4650
4651| 类型 | 说明 |
4652| -------- | -------- |
4653| [Scope](#scopedeprecated) | 返回当前范围和给定下限和上限的并集。 |
4654
4655**示例:**
4656
4657  ```ts
4658  class Temperature{
4659    private readonly _temp: number;
4660    constructor(value : number) {
4661      this._temp = value;
4662    }
4663    compareTo(value : Temperature ) {
4664      return this._temp >= value.getTemp();
4665    }
4666    getTemp() {
4667      return this._temp;
4668    }
4669    toString() : string {
4670      return this._temp.toString();
4671    }
4672  }
4673
4674  let tempLower = new Temperature(30);
4675  let tempUpper = new Temperature(40);
4676  let tempMiDF = new Temperature(35);
4677  let tempMidS = new Temperature(39);
4678  let range = new util.Scope(tempLower, tempUpper);
4679  let result = range.expand(tempMiDF, tempMidS);
4680  ```
4681
4682### expand<sup>(deprecated)</sup>
4683
4684expand(range: Scope): Scope
4685
4686创建并返回包括当前范围和给定范围的并集。
4687
4688> **说明:**
4689>
4690> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.expand<sup>9+</sup>](#expand9-1)替代。
4691
4692**系统能力:** SystemCapability.Utils.Lang
4693
4694**参数:**
4695
4696| 参数名 | 类型 | 必填 | 说明 |
4697| -------- | -------- | -------- | -------- |
4698| range | [Scope](#scopedeprecated) | 是 | 传入一个给定范围。 |
4699
4700**返回值:**
4701
4702| 类型 | 说明 |
4703| -------- | -------- |
4704| [Scope](#scopedeprecated) | 返回包括当前范围和给定范围的并集。 |
4705
4706**示例:**
4707
4708  ```ts
4709  class Temperature{
4710    private readonly _temp: number;
4711    constructor(value : number) {
4712      this._temp = value;
4713    }
4714    compareTo(value : Temperature ) {
4715      return this._temp >= value.getTemp();
4716    }
4717    getTemp() {
4718      return this._temp;
4719    }
4720    toString() : string {
4721      return this._temp.toString();
4722    }
4723  }
4724
4725  let tempLower = new Temperature(30);
4726  let tempUpper = new Temperature(40);
4727  let tempMiDF = new Temperature(35);
4728  let tempMidS = new Temperature(39);
4729  let range = new util.Scope(tempLower, tempUpper);
4730  let rangeFir = new util.Scope(tempMiDF, tempMidS);
4731  let result = range.expand(rangeFir);
4732  ```
4733
4734### expand<sup>(deprecated)</sup>
4735
4736expand(value: ScopeType): Scope
4737
4738创建并返回包括当前范围和给定值的并集。
4739
4740> **说明:**
4741>
4742> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.expand<sup>9+</sup>](#expand9-2)替代。
4743
4744**系统能力:** SystemCapability.Utils.Lang
4745
4746**参数:**
4747
4748| 参数名 | 类型 | 必填 | 说明 |
4749| -------- | -------- | -------- | -------- |
4750| value | [ScopeType](#scopetype8) | 是 | 传入一个给定值。 |
4751
4752**返回值:**
4753
4754| 类型 | 说明 |
4755| -------- | -------- |
4756| [Scope](#scopedeprecated) | 返回包括当前范围和给定值的并集。 |
4757
4758**示例:**
4759
4760  ```ts
4761  class Temperature{
4762    private readonly _temp: number;
4763    constructor(value : number) {
4764      this._temp = value;
4765    }
4766    compareTo(value : Temperature ) {
4767      return this._temp >= value.getTemp();
4768    }
4769    getTemp() {
4770      return this._temp;
4771    }
4772    toString() : string {
4773      return this._temp.toString();
4774    }
4775  }
4776
4777  let tempLower = new Temperature(30);
4778  let tempUpper = new Temperature(40);
4779  let tempMiDF = new Temperature(35);
4780  let range = new util.Scope(tempLower, tempUpper);
4781  let result = range.expand(tempMiDF);
4782  ```
4783
4784### contains<sup>(deprecated)</sup>
4785
4786contains(value: ScopeType): boolean
4787
4788检查给定value是否包含在当前范围内。
4789
4790> **说明:**
4791>
4792> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.contains<sup>9+</sup>](#contains9-1)替代。
4793
4794**系统能力:** SystemCapability.Utils.Lang
4795
4796**参数:**
4797
4798| 参数名 | 类型 | 必填 | 说明 |
4799| -------- | -------- | -------- | -------- |
4800| value | [ScopeType](#scopetype8) | 是 | 传入一个给定值。 |
4801
4802**返回值:**
4803
4804| 类型 | 说明 |
4805| -------- | -------- |
4806| boolean | 如果给定值包含在当前范围内返回true,否则返回false。 |
4807
4808**示例:**
4809
4810  ```ts
4811  class Temperature{
4812    private readonly _temp: number;
4813    constructor(value : number) {
4814      this._temp = value;
4815    }
4816    compareTo(value : Temperature ) {
4817      return this._temp >= value.getTemp();
4818    }
4819    getTemp() {
4820      return this._temp;
4821    }
4822    toString() : string {
4823      return this._temp.toString();
4824    }
4825  }
4826
4827  let tempLower = new Temperature(30);
4828  let tempUpper = new Temperature(40);
4829  let tempMiDF = new Temperature(35);
4830  let range = new util.Scope(tempLower, tempUpper);
4831  let result = range.contains(tempMiDF);
4832  ```
4833
4834### contains<sup>(deprecated)</sup>
4835
4836contains(range: Scope): boolean
4837
4838检查给定range是否在当前范围内。
4839
4840> **说明:**
4841>
4842> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.contains<sup>9+</sup>](#contains9-2)替代。
4843
4844**系统能力:** SystemCapability.Utils.Lang
4845
4846**参数:**
4847
4848| 参数名 | 类型 | 必填 | 说明 |
4849| -------- | -------- | -------- | -------- |
4850| range | [Scope](#scopedeprecated) | 是 | 传入一个给定范围。 |
4851
4852**返回值:**
4853
4854| 类型 | 说明 |
4855| -------- | -------- |
4856| boolean | 如果给定范围包含在当前范围内返回true,否则返回false。 |
4857
4858**示例:**
4859
4860  ```ts
4861  class Temperature{
4862    private readonly _temp: number;
4863    constructor(value : number) {
4864      this._temp = value;
4865    }
4866    compareTo(value : Temperature ) {
4867      return this._temp >= value.getTemp();
4868    }
4869    getTemp() {
4870      return this._temp;
4871    }
4872    toString() : string {
4873      return this._temp.toString();
4874    }
4875  }
4876
4877  let tempLower = new Temperature(30);
4878  let tempUpper = new Temperature(40);
4879  let range = new util.Scope(tempLower, tempUpper);
4880  let tempLess = new Temperature(20);
4881  let tempMore = new Temperature(45);
4882  let rangeSec = new util.Scope(tempLess, tempMore);
4883  let result = range.contains(rangeSec);
4884  ```
4885
4886### clamp<sup>(deprecated)</sup>
4887
4888
4889clamp(value: ScopeType): ScopeType
4890
4891将给定值限定到当前范围内。
4892
4893> **说明:**
4894>
4895> 从API version 8开始支持,从API version 9开始废弃,建议使用[ScopeHelper.clamp<sup>9+</sup>](#clamp9)替代。
4896
4897**系统能力:** SystemCapability.Utils.Lang
4898
4899**参数:**
4900
4901| 参数名 | 类型 | 必填 | 说明 |
4902| -------- | -------- | -------- | -------- |
4903| value | [ScopeType](#scopetype8) | 是 | 传入的给定值。 |
4904
4905**返回值:**
4906
4907| 类型 | 说明 |
4908| -------- | -------- |
4909| [ScopeType](#scopetype8) | 如果传入的value小于下限,则返回lowerObj;如果大于上限值则返回upperObj;如果在当前范围内,则返回value。 |
4910
4911**示例:**
4912
4913  ```ts
4914  class Temperature{
4915    private readonly _temp: number;
4916    constructor(value : number) {
4917      this._temp = value;
4918    }
4919    compareTo(value : Temperature ) {
4920      return this._temp >= value.getTemp();
4921    }
4922    getTemp() {
4923      return this._temp;
4924    }
4925    toString() : string {
4926      return this._temp.toString();
4927    }
4928  }
4929
4930  let tempLower = new Temperature(30);
4931  let tempUpper = new Temperature(40);
4932  let tempMiDF = new Temperature(35);
4933  let range = new util.Scope(tempLower, tempUpper);
4934  let result = range.clamp(tempMiDF);
4935  ```
4936
4937
4938## Base64<sup>(deprecated)</sup>
4939
4940> **说明:**
4941>
4942> 从API version 8开始支持,从API version 9开始废弃,建议使用[Base64Helper<sup>9+</sup>](#base64helper9)替代。
4943
4944### constructor<sup>(deprecated)</sup>
4945
4946constructor()
4947
4948Base64的构造函数。
4949
4950> **说明:**
4951>
4952> 从API version 8开始支持,从API version 9开始废弃,建议使用[Base64Helper.constructor<sup>9+</sup>](#constructor9-5)替代。
4953
4954**系统能力:** SystemCapability.Utils.Lang
4955
4956**示例:**
4957
4958  ```ts
4959  let base64 = new  util.Base64();
4960  ```
4961
4962### encodeSync<sup>(deprecated)</sup>
4963
4964encodeSync(src: Uint8Array): Uint8Array
4965
4966通过输入参数编码后输出对应文本。
4967
4968> **说明:**
4969>
4970> 从API version 8开始支持,从API version 9开始废弃,建议使用[Base64Helper.encodeSync<sup>9+</sup>](#encodesync9)替代。
4971
4972**系统能力:** SystemCapability.Utils.Lang
4973
4974**参数:**
4975
4976| 参数名 | 类型 | 必填 | 说明 |
4977| -------- | -------- | -------- | -------- |
4978| src | Uint8Array | 是 | 编码输入Uint8数组。 |
4979
4980**返回值:**
4981
4982| 类型 | 说明 |
4983| -------- | -------- |
4984| Uint8Array | 返回编码后新分配的Uint8数组。 |
4985
4986**示例:**
4987
4988  ```ts
4989  let that = new util.Base64();
4990  let array = new Uint8Array([115,49,51]);
4991  let result = that.encodeSync(array);
4992  ```
4993
4994### encodeToStringSync<sup>(deprecated)</sup>
4995
4996encodeToStringSync(src: Uint8Array): string
4997
4998通过输入参数编码后输出对应文本。
4999
5000> **说明:**
5001>
5002> 从API version 8开始支持,从API version 9开始废弃,建议使用[Base64Helper.encodeToStringSync<sup>9+</sup>](#encodetostringsync9)替代。
5003
5004**系统能力:** SystemCapability.Utils.Lang
5005
5006**参数:**
5007
5008| 参数名 | 类型 | 必填 | 说明 |
5009| -------- | -------- | -------- | -------- |
5010| src | Uint8Array | 是 | 编码输入Uint8数组。 |
5011
5012**返回值:**
5013
5014| 类型 | 说明 |
5015| -------- | -------- |
5016| string | 返回编码后的字符串。 |
5017
5018**示例:**
5019
5020  ```ts
5021  let that = new util.Base64();
5022  let array = new Uint8Array([115,49,51]);
5023  let result = that.encodeToStringSync(array);
5024  ```
5025
5026### decodeSync<sup>(deprecated)</sup>
5027
5028decodeSync(src: Uint8Array | string): Uint8Array
5029
5030通过输入参数解码后输出对应文本。
5031
5032> **说明:**
5033>
5034> 从API version 8开始支持,从API version 9开始废弃,建议使用[Base64Helper.decodeSync<sup>9+</sup>](#decodesync9)替代。
5035
5036**系统能力:** SystemCapability.Utils.Lang
5037
5038**参数:**
5039
5040| 参数名 | 类型 | 必填 | 说明 |
5041| -------- | -------- | -------- | -------- |
5042| src | Uint8Array&nbsp;\|&nbsp;string | 是 | 解码输入Uint8数组或者字符串。 |
5043
5044**返回值:**
5045
5046| 类型 | 说明 |
5047| -------- | -------- |
5048| Uint8Array | 返回解码后新分配的Uint8数组。 |
5049
5050**示例:**
5051
5052  ```ts
5053  let that = new util.Base64();
5054  let buff = 'czEz';
5055  let result = that.decodeSync(buff);
5056  ```
5057
5058### encode<sup>(deprecated)</sup>
5059
5060encode(src: Uint8Array): Promise&lt;Uint8Array&gt;
5061
5062通过输入参数异步编码后输出对应文本。
5063
5064> **说明:**
5065>
5066> 从API version 8开始支持,从API version 9开始废弃,建议使用[Base64Helper.encode<sup>9+</sup>](#encode9)替代。
5067
5068**系统能力:** SystemCapability.Utils.Lang
5069
5070**参数:**
5071
5072| 参数名 | 类型 | 必填 | 说明 |
5073| -------- | -------- | -------- | -------- |
5074| src | Uint8Array | 是 | 异步编码输入Uint8数组。 |
5075
5076**返回值:**
5077
5078| 类型 | 说明 |
5079| -------- | -------- |
5080| Promise&lt;Uint8Array&gt; | 返回异步编码后新分配的Uint8数组。 |
5081
5082**示例:**
5083
5084  ```ts
5085  let that = new util.Base64();
5086  let array = new Uint8Array([115,49,51]);
5087  let rarray = new Uint8Array([99,122,69,122]);
5088  that.encode(array).then(val=>{
5089      for (let i = 0; i < rarray.length; i++) {
5090          console.log(val[i].toString())
5091      }
5092  })
5093  ```
5094
5095### encodeToString<sup>(deprecated)</sup>
5096
5097encodeToString(src: Uint8Array): Promise&lt;string&gt;
5098
5099通过输入参数异步编码后输出对应文本。
5100
5101> **说明:**
5102>
5103> 从API version 8开始支持,从API version 9开始废弃,建议使用[Base64Helper.encodeToString<sup>9+</sup>](#encodetostring9)替代。
5104
5105**系统能力:** SystemCapability.Utils.Lang
5106
5107**参数:**
5108
5109| 参数名 | 类型 | 必填 | 说明 |
5110| -------- | -------- | -------- | -------- |
5111| src | Uint8Array | 是 | 异步编码输入Uint8数组。 |
5112
5113**返回值:**
5114
5115| 类型 | 说明 |
5116| -------- | -------- |
5117| Promise&lt;string&gt; | 返回异步编码后的字符串。 |
5118
5119**示例:**
5120
5121  ```ts
5122  let that = new util.Base64();
5123  let array = new Uint8Array([115,49,51]);
5124  that.encodeToString(array).then(val=>{
5125      console.log(val)
5126  })
5127  ```
5128
5129### decode<sup>(deprecated)</sup>
5130
5131
5132decode(src: Uint8Array | string): Promise&lt;Uint8Array&gt;
5133
5134通过输入参数异步解码后输出对应文本。
5135
5136> **说明:**
5137>
5138> 从API version 8开始支持,从API version 9开始废弃,建议使用[Base64Helper.decode<sup>9+</sup>](#decode9)替代。
5139
5140**系统能力:** SystemCapability.Utils.Lang
5141
5142**参数:**
5143
5144| 参数名 | 类型 | 必填 | 说明 |
5145| -------- | -------- | -------- | -------- |
5146| src | Uint8Array&nbsp;\|&nbsp;string | 是 | 异步解码输入Uint8数组或者字符串。 |
5147
5148**返回值:**
5149
5150| 类型 | 说明 |
5151| -------- | -------- |
5152| Promise&lt;Uint8Array&gt; | 返回异步解码后新分配的Uint8数组。 |
5153
5154**示例:**
5155
5156  ```ts
5157  let that = new util.Base64();
5158  let array = new Uint8Array([99,122,69,122]);
5159  let rarray = new Uint8Array([115,49,51]);
5160  that.decode(array).then(val=>{
5161      for (let i = 0; i < rarray.length; i++) {
5162          console.log(val[i].toString());
5163      }
5164  })
5165  ```
5166