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