HarmonyOS API:@ohos.util (util工具函数)

joytrian
发布于 2023-4-11 16:59
浏览
0收藏

版本:v3.1 Beta

@ohos.util (util工具函数)

更新时间: 2023-03-17 18:27


该模块主要提供常用的工具函数,实现字符串编解码(TextEncoder,TextDecoder)、有理数运算(RationalNumber)、缓冲区管理(LruBuffer)、范围判断(Scope)、Base64编解码(Base64)、内置对象类型检查(Types)等功能。


说明

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import util from '@ohos.util';

util.format9+

format(format: string, ...args: Object[]): string

通过式样化字符串对输入的内容按特定格式输出。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

format

string

式样化字符串。

...args

Object[]

替换式样化字符串通配符的数据。

返回值:

类型

说明

string

按特定格式式样化后的字符串。

示例:

let res = util.format("%s", "hello world!");
console.log(res);

util.errnoToString9+

errnoToString(errno: number): string

获取系统错误码对应的详细信息。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

errno

number

系统发生错误产生的错误码。

返回值:

类型

说明

string

错误码对应的详细信息。

示例:

let errnum = -1; // -1 : a system error number
let result = util.errnoToString(errnum);
console.log("result = " + result);

util.callbackWrapper

callbackWrapper(original: Function): (err: Object, value: Object )=>void

对异步函数进行回调化处理,回调中第一个参数将是拒绝原因(如果 Promise 已解决,则为 null),第二个参数将是已解决的值。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

original

Function

异步函数。

返回值:

类型

说明

Function

返回一个第一个参数是拒绝原因(如果 Promise 已解决,则为 null),第二个参数是已解决的回调函数。

示例:

async function fn() {
  return 'hello world';
}
let cb = util.callbackWrapper(fn);
cb(1, (err, ret) => {
  if (err) throw err;
  console.log(ret);
});

util.promisify9+

promisify(original: (err: Object, value: Object) => void): Function

对异步函数处理并返回一个promise的函数。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

original

Function

异步函数。

返回值:

类型

说明

Function

采用遵循常见的错误优先的回调风格的函数(也就是将 (err, value) => ... 回调作为最后一个参数),并返回一个返回 promise 的函数。

示例:

function aysnFun(str1, str2) {
  if (typeof str1 === 'object' && typeof str2 === 'object') {
    return str2
  } else {
    return str1
  }
}
let newPromiseObj = util.promisify(aysnFun);
newPromiseObj({ err: "type error" }, {value:'HelloWorld'}).then(res => {
  console.log(res);
})

util.randomUUID9+

randomUUID(entropyCache?: boolean): string

使用加密安全随机数生成器生成随机的RFC 4122版本4的 UUID。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

entropyCache

boolean

是否使用已缓存的UUID, 默认true。

返回值:

类型

说明

string

表示此UUID的字符串。

示例:

let uuid = util.randomUUID(true);
console.log("RFC 4122 Version 4 UUID:" + uuid);
// 输出:
// RFC 4122 Version 4 UUID:88368f2a-d5db-47d8-a05f-534fab0a0045

util.randomBinaryUUID9+

randomBinaryUUID(entropyCache?: boolean): Uint8Array

使用加密安全随机数生成器生成随机的RFC 4122版本4的 UUID。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

entropyCache

boolean

是否使用已缓存的UUID, 默认true。

返回值:

类型

说明

Uint8Array

表示此UUID的Uint8Array值。

示例:

let uuid = util.randomBinaryUUID(true);
console.log(JSON.stringify(uuid));
// 输出:
// 138,188,43,243,62,254,70,119,130,20,235,222,199,164,140,150

util.parseUUID9+

parseUUID(uuid: string): Uint8Array

从字符串中解析UUID,如RFC 4122版本4中所述。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

uuid

string

UUID字符串。

返回值:

类型

说明

Uint8Array

返回表示此UUID的Uint8Array,如果解析失败,则抛出SyntaxError。

示例:

let uuid = util.parseUUID("84bdf796-66cc-4655-9b89-d6218d100f9c");
console.log(JSON.stringify(uuid));
// 输出:
// 132,189,247,150,102,204,70,85,155,137,214,33,141,16,15,156

util.printf(deprecated)

printf(format: string, ...args: Object[]): string

通过式样化字符串对输入的内容按特定格式输出。

说明

从API version 7开始支持,从API version 9开始废弃,建议使用​​util.format9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

format

string

式样化字符串。

...args

Object[]

替换式样化字符串通配符的数据。

返回值:

类型

说明

string

按特定格式式样化后的字符串。

示例:

let res = util.printf("%s", "hello world!");
console.log(res);

util.getErrorString(deprecated)

getErrorString(errno: number): string

获取系统错误码对应的详细信息。

说明

从API version 7开始支持,从API version 9开始废弃,建议使用​​util.errnoToString9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

errno

number

系统发生错误产生的错误码。

返回值:

类型

说明

string

错误码对应的详细信息。

示例:

let errnum = -1; // -1 : a system error number
let result = util.getErrorString(errnum);
console.log("result = " + result);

util.promiseWrapper(deprecated)

promiseWrapper(original: (err: Object, value: Object) => void): Object

对异步函数处理并返回一个promise的版本。

说明

此接口不可用,建议使用​​util.promisify9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

original

Function

异步函数。

返回值:

类型

说明

Function

采用遵循常见的错误优先的回调风格的函数(也就是将 (err, value) => ... 回调作为最后一个参数),并返回一个返回 promise 的版本。

TextDecoder

属性

系统能力: SystemCapability.Utils.Lang。

名称

类型

可读

可写

说明

encoding

string

编码格式。

- 支持格式: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。

fatal

boolean

是否显示致命错误。

ignoreBOM

boolean

是否忽略BOM(byte order marker)标记,默认值为false ,表示解码结果包含BOM标记。

constructor9+

constructor()

TextDecoder的构造函数。

系统能力: SystemCapability.Utils.Lang

create9+

create(encoding?: string,options?: { fatal?: boolean; ignoreBOM?: boolean }): TextDecoder;

替代有参构造功能。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

encoding

string

编码格式。

options

Object

编码相关选项参数,存在两个属性fatal和ignoreBOM。

表1.1options

名称

参数类型

必填

说明

fatal

boolean

是否显示致命错误。

ignoreBOM

boolean

是否忽略BOM标记。

示例:

let textDecoder = new util.TextDecoder()
textDecoder.create('utf-8', { ignoreBOM : true });

decodeWithStream9+

decodeWithStream(input: Uint8Array, options?: { stream?: boolean }): string

通过输入参数解码后输出对应文本。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

input

Uint8Array

符合格式需要解码的数组。

options

Object

解码相关选项参数。

表2 options

名称

参数类型

必填

说明

stream

boolean

在随后的decodeWithStream()调用中是否跟随附加数据块。如果以块的形式处理数据,则设置为true;如果处理最后的数据块或数据未分块,则设置为false。默认为false。

返回值:

类型

说明

string

解码后的数据。

示例:

let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true});
let result = new Uint8Array(6);
result[0] = 0xEF;
result[1] = 0xBB;
result[2] = 0xBF;
result[3] = 0x61;
result[4] = 0x62;
result[5] = 0x63;
console.log("input num:");
let retStr = textDecoder.decodeWithStream( result , {stream: false});
console.log("retStr = " + retStr);

constructor(deprecated)

constructor(encoding?: string, options?: { fatal?: boolean; ignoreBOM?: boolean })

TextDecoder的构造函数。

说明

从API version 7开始支持,从API version 9开始废弃,建议使用​​create9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

encoding

string

编码格式。

options

Object

编码相关选项参数,存在两个属性fatal和ignoreBOM。

表1 options

名称

参数类型

必填

说明

fatal

boolean

是否显示致命错误。

ignoreBOM

boolean

是否忽略BOM标记。

示例:

let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true});

decode(deprecated)

decode(input: Uint8Array, options?: { stream?: false }): string

通过输入参数解码后输出对应文本。

说明

从API version 7开始支持,从API version 9开始废弃,建议使用​​decodeWithStream9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

input

Uint8Array

符合格式需要解码的数组。

options

Object

解码相关选项参数。

表2 options

名称

参数类型

必填

说明

stream

boolean

在随后的decode()调用中是否跟随附加数据块。如果以块的形式处理数据,则设置为true;如果处理最后的数据块或数据未分块,则设置为false。默认为false。

返回值:

类型

说明

string

解码后的数据。

示例:

let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true});
let result = new Uint8Array(6);
result[0] = 0xEF;
result[1] = 0xBB;
result[2] = 0xBF;
result[3] = 0x61;
result[4] = 0x62;
result[5] = 0x63;
console.log("input num:");
let retStr = textDecoder.decode( result , {stream: false});
console.log("retStr = " + retStr);

TextEncoder

属性

系统能力: SystemCapability.Utils.Lang。

名称

类型

可读

可写

说明

encoding

string

编码格式,默认值是utf-8。

constructor

constructor()

TextEncoder的构造函数。

系统能力: SystemCapability.Utils.Lang

示例:

let textEncoder = new util.TextEncoder();

constructor9+

constructor(encoding?: string)

TextEncoder的构造函数。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

encoding

string

编码格式

示例:

let textEncoder = new util.TextEncoder("utf-8");

encodeInto9+

encodeInto(input?: string): Uint8Array

通过输入参数编码后输出对应文本。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

input

string

需要编码的字符串。

返回值:

类型

说明

Uint8Array

返回编码后的文本。

示例:

let textEncoder = new util.TextEncoder();
let buffer = new ArrayBuffer(20);
let result = new Uint8Array(buffer);
result = textEncoder.encodeInto("\uD800¥¥");

encodeIntoUint8Array9+

encodeIntoUint8Array(input: string, dest: Uint8Array, ): { read: number; written: number }

放置生成的UTF-8编码文本。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

input

string

需要编码的字符串。

dest

Uint8Array

Uint8Array对象实例,用于将生成的UTF-8编码文本放入其中。

返回值:

类型

说明

Uint8Array

返回编码后的文本。

示例:

let that = new util.TextEncoder()
let buffer = new ArrayBuffer(4)
let dest = new Uint8Array(buffer)
let result = new Object()
result = that.encodeIntoUint8Array('abcd', dest)

encodeInto(deprecated)

encodeInto(input: string, dest: Uint8Array, ): { read: number; written: number }

放置生成的UTF-8编码文本。

说明

从API version 7开始支持,从API version 9开始废弃,建议使用​​encodeIntoUint8Array9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

input

string

需要编码的字符串。

dest

Uint8Array

Uint8Array对象实例,用于将生成的UTF-8编码文本放入其中。

返回值:

类型

说明

Uint8Array

返回编码后的文本。

示例:

let that = new util.TextEncoder()
let buffer = new ArrayBuffer(4)
let dest = new Uint8Array(buffer)
let result = new Object()
result = that.encodeInto('abcd', dest)

encode(deprecated)

encode(input?: string): Uint8Array

通过输入参数编码后输出对应文本。

说明

从API version 7开始支持,从API version 9开始废弃,建议使用​​encodeInto9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

input

string

需要编码的字符串。

返回值:

类型

说明

Uint8Array

返回编码后的文本。

示例:

let textEncoder = new util.TextEncoder();
let buffer = new ArrayBuffer(20);
let result = new Uint8Array(buffer);
result = textEncoder.encode("\uD800¥¥");

RationalNumber8+

constructor9+

constructor()

RationalNumber的构造函数。

系统能力: SystemCapability.Utils.Lang

示例:

let rationalNumber = new util.RationalNumber();

parseRationalNumber9+

parseRationalNumber(numerator: number,denominator: number): RationalNumber

替代原有参构造的参数处理。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

numerator

number

分子,整数类型。

denominator

number

分母,整数类型。

示例:

let rationalNumber = util.RationalNumber.parseRationalNumber(1,2)

createRationalFromString8+

static createRationalFromString(rationalString: string): RationalNumber

基于给定的字符串创建一个RationalNumber对象。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

rationalString

string

字符串格式。

返回值:

类型

说明

object

返回有理数类的对象。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let rational = util.RationalNumber.createRationalFromString("3/4");

compare9+

compare(another: RationalNumber): number

将当前的RationalNumber对象与给定的对象进行比较。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

another

RationalNumber

其他的有理数对象。

返回值:

类型

说明

number

如果两个对象相等,则返回0;如果给定对象小于当前对象,则返回1;如果给定对象大于当前对象,则返回-1。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let rational = util.RationalNumber.createRationalFromString("3/4");
let result = rationalNumber.compare(rational);

valueOf8+

valueOf(): number

以整数形式或者浮点数的形式获取当前RationalNumber对象的值。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回整数或者浮点数的值。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.valueOf();

equals8+

equals(obj: Object): boolean

将当前的RationalNumber对象与给定的对象进行比较是否相等。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

object

Object

其他类型对象。

返回值:

类型

说明

boolean

如果给定对象与当前对象相同,则返回true;否则返回false。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let rational = util.RationalNumber.createRationalFromString("3/4");
let result = rationalNumber.equals(rational);

getCommonFactor9+

getCommonFactor(number1: number,number2: number): number

获取两个指定整数的最大公约数。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

number1

number

整数类型。

number2

number

整数类型。

返回值:

类型

说明

number

返回两个给定数字的最大公约数。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = util.RationalNumber.getCommonFactor(4,6);

getNumerator8+

getNumerator(): number

获取当前RationalNumber对象的分子。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回RationalNumber对象的分子的值。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.getNumerator();

getDenominator8+

getDenominator(): number

获取当前RationalNumber对象的分母。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回RationalNumber对象的分母的值。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.getDenominator();

isZero8+

isZero():boolean

检查当前RationalNumber对象是否为0。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

boolean

如果当前对象表示的值为0,则返回true;否则返回false。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.isZero();

isNaN8+

isNaN(): boolean

检查当前RationalNumber对象是否表示非数字(NaN)值。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

boolean

如果分母和分子都为0,则返回true;否则返回false。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.isNaN();

isFinite8+

isFinite():boolean

检查当前RationalNumber对象是否表示一个有限值。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

boolean

如果分母不为0,则返回true;否则返回false。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.isFinite();

toString8+

toString(): string

获取当前RationalNumber对象的字符串表示形式。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

string

返回Numerator/Denominator格式的字符串,例如3/5,如果当前对象的分子和分母都为0,则返回NaN。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.toString();

constructor(deprecated)

constructor(numerator: number,denominator: number)

RationalNumber的构造函数。

说明

从API version 8开始支持,从API version 9开始废弃,建议使用​​constructor9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

numerator

number

分子,整数类型。

denominator

number

分母,整数类型。

示例:

let rationalNumber = new util.RationalNumber(1,2);

compareTo(deprecated)

compareTo(another: RationalNumber): number

将当前的RationalNumber对象与给定的对象进行比较。

说明

从API version 8开始支持,从API version 9开始废弃,建议使用​​compare9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

another

RationalNumber

其他的有理数对象。

返回值:

类型

说明

number

如果两个对象相等,则返回0;如果给定对象小于当前对象,则返回1;如果给定对象大于当前对象,则返回-1。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let rational = util.RationalNumber.createRationalFromString("3/4");
let result = rationalNumber.compareTo(rational);

getCommonDivisor(deprecated)

static getCommonDivisor(number1: number,number2: number): number

获取两个指定整数的最大公约数。

说明

从API version 8开始支持,从API version 9开始废弃,建议使用​​getCommonFactor9+​替代。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

number1

number

整数类型。

number2

number

整数类型。

返回值:

类型

说明

number

返回两个给定数字的最大公约数。

示例:

let rationalNumber = new util.RationalNumber(1,2);
let result = util.RationalNumber.getCommonDivisor(4,6);

LRUCache9+

属性

系统能力: 以下各项对应的系统能力均为SystemCapability.Utils.Lang。

名称

类型

可读

可写

说明

length

number

当前缓冲区中值的总数。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
pro.put(1,8);
let result = pro.length;

constructor9+

constructor(capacity?: number)

默认构造函数用于创建一个新的LruBuffer实例,默认容量为64。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

capacity

number

指示要为缓冲区自定义的容量。

示例:

let lrubuffer= new util.LRUCache();

updateCapacity9+

updateCapacity(newCapacity: number): void

将缓冲区容量更新为指定容量,如果newCapacity小于或等于0,则抛出异常。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

newCapacity

number

指示要为缓冲区自定义的容量。

示例:

let pro = new util.LRUCache();
let result = pro.updateCapacity(100);

toString9+

toString(): string

返回对象的字符串表示形式。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

string

返回对象的字符串表示形式。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
pro.get(2);
pro.remove(20);
let result = pro.toString();

getCapacity9+

getCapacity(): number

获取当前缓冲区的容量。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回当前缓冲区的容量。

示例:

let pro = new util.LRUCache();
let result = pro.getCapacity();

clear9+

clear(): void

从当前缓冲区清除键值对。后续会调用afterRemoval()方法执行后续操作。

系统能力: SystemCapability.Utils.Lang

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.length;
pro.clear();

getCreateCount9+

getCreateCount(): number

获取createDefault()返回值的次数。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回createDefault()返回值的次数。

示例:

let pro = new util.LRUCache();
pro.put(1,8);
let result = pro.getCreateCount();

getMissCount9+

getMissCount(): number

获取查询值不匹配的次数。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回查询值不匹配的次数。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
pro.get(2);
let result = pro.getMissCount();

getRemovalCount9+

getRemovalCount(): number

获取从缓冲区中逐出值的次数。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回从缓冲区中驱逐的次数。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
pro.updateCapacity(2);
pro.put(50,22);
let result = pro.getRemovalCount();

getMatchCount9+

getMatchCount(): number

获取查询值匹配成功的次数。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回查询值匹配成功的次数。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
pro.get(2);
let result = pro.getMatchCount();

getPutCount9+

getPutCount(): number

获取将值添加到缓冲区的次数。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

number

返回将值添加到缓冲区的次数。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.getPutCount();

isEmpty9+

isEmpty(): boolean

检查当前缓冲区是否为空。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

boolean

如果当前缓冲区不包含任何值,则返回true。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.isEmpty();

get9+

get(key: K): V | undefined

表示要查询的键。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

key

K

要查询的键。

返回值:

类型

说明

V | undefined

如果指定的键存在于缓冲区中,则返回与键关联的值;否则返回undefined。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let result  = pro.get(2);

put9+

put(key: K,value: V): V

将键值对添加到缓冲区。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

key

K

要添加的密钥。

value

V

指示与要添加的键关联的值。

返回值:

类型

说明

V

返回与添加的键关联的值;如果要添加的键已经存在,则返回原始值,如果键或值为空,则抛出此异常。

示例:

let pro = new util.LRUCache();
let result = pro.put(2,10);

values9+

values(): V[]

获取当前缓冲区中所有值从最近访问到最近最少访问的顺序列表 。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

V []

按从最近访问到最近最少访问的顺序返回当前缓冲区中所有值的列表。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
pro.put(2,"anhu");
pro.put("afaf","grfb");
let result = pro.values();

keys9+

keys(): K[]

获取当前缓冲区中所有键从最近访问到最近最少访问的升序列表。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

K []

按升序返回当前缓冲区中所有键的列表,从最近访问到最近最少访问。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.keys();

remove9+

remove(key: K): V | undefined

从当前缓冲区中删除指定的键及其关联的值。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

key

K

要删除的密钥。

返回值:

类型

说明

V | undefined

返回一个包含已删除键值对的Optional对象;如果key不存在,则返回一个空的Optional对象,如果key为null,则抛出异常。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.remove(20);

afterRemoval9+

afterRemoval(isEvict: boolean,key: K,value: V,newValue: V): void

删除值后执行后续操作。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

isEvict

boolean

因容量不足而调用该方法时,参数值为true,其他情况为false。

key

K

表示删除的键。

value

V

表示删除的值。

newValue

V

如果已调用put方法并且要添加的键已经存在,则参数值是关联的新值。其他情况下参数值为空。

示例:

let arr = [];
class ChildLruBuffer<K, V> extends util.LRUCache<K, V>
{
  constructor()
  {
      super();
  }
  afterRemoval(isEvict, key, value, newValue)
  {
      if (isEvict === false)
      {
          arr = [key, value, newValue];
      }
  }
}
let lru = new ChildLruBuffer();
lru.afterRemoval(false,10,30,null);

contains9+

contains(key: K): boolean

检查当前缓冲区是否包含指定的键。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

key

K

表示要检查的键。

返回值:

类型

说明

boolean

如果缓冲区包含指定的键,则返回 true。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let obj = {1:"key"};
let result = pro.contains(obj);

createDefault9+

createDefault(key: K): V

如果未计算特定键的值,则执行后续操作,参数表示丢失的键,返回与键关联的值。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

key

K

表示丢失的键。

返回值:

类型

说明

V

返回与键关联的值。

示例:

let pro = new util.LRUCache();
let result = pro.createDefault(50);

entries9+

entries(): IterableIterator<[K,V]>

允许迭代包含在这个对象中的所有键值对。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

[K, V]

返回一个可迭代数组。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.entries();

[Symbol.iterator]9+

[Symbol.iterator](): IterableIterator<[K, V]>

返回一个键值对形式的二维数组。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

[K, V]

返回一个键值对形式的二维数组。

示例:

let pro = new util.LRUCache();
pro.put(2,10);
let result = pro[Symbol.iterator]();

ScopeComparable8+

ScopeComparable类型的值需要实现compareTo方法,确保传入的数据具有可比性。

系统能力: SystemCapability.Utils.Lang

compareTo8+

compareTo(other: ScopeComparable): boolean;

比较两个值的大小,返回一个布尔值。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

other

​ScopeComparable​

表示要比较的值。

返回值:

类型

说明

boolean

调用compareTo的值大于等于传入的值返回true,否则返回false。

示例:

构造新类,实现compareTo方法。后续示例代码中,均以此Temperature类为例。

class Temperature{
    constructor(value){
       // 当使用ts语言开发时,需要补充以下代码:
       // private readonly _temp: Temperature;
       this._temp = value;
    }
    compareTo(value){
       return this._temp >= value.getTemp();
    }
    getTemp(){
       return this._temp;
    }
    toString(){
       return this._temp.toString();
    }
}

ScopeType8+

用于表示范围中的值的类型。

系统能力: SystemCapability.Utils.Lang

类型

说明

number

表示值的类型为数字。

​ScopeComparable​

表示值的类型为ScopeComparable。

ScopeHelper9+

constructor9+

constructor(lowerObj: ScopeType, upperObj: ScopeType)

用于创建指定下限和上限的作用域实例的构造函数,返回一个ScopeHelper对象。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

lowerObj

​ScopeType​

指定作用域实例的下限。

upperObj

​ScopeType​

指定作用域实例的上限。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);

toString9+

toString(): string

该字符串化方法返回一个包含当前范围的字符串表示形式。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

string

返回包含当前范围对象的字符串表示形式。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.toString();

intersect9+

intersect(range: ScopeHelper): ScopeHelper

获取给定范围和当前范围的交集。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

range

​ScopeHelper​

传入一个给定范围。

返回值:

类型

说明

​ScopeHelper9+​

返回给定范围和当前范围的交集。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS);
range.intersect(rangeFir);

intersect9+

intersect(lowerObj:ScopeType,upperObj:ScopeType):ScopeHelper

获取当前范围与给定下限和上限范围的交集。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

lowerObj

​ScopeType​

给定范围的下限。

upperObj

​ScopeType​

给定范围的上限。

返回值:

类型

说明

​ScopeHelper​

返回当前范围与给定下限和上限范围的交集。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.intersect(tempMiDF, tempMidS);

getUpper9+

getUpper(): ScopeType

获取当前范围的上限。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

​ScopeType​

返回当前范围的上限值。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.getUpper();

getLower9+

getLower(): ScopeType

获取当前范围的下限。

系统能力: SystemCapability.Utils.Lang

返回值:

类型

说明

​ScopeType​

返回当前范围的下限值。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.getLower();

expand9+

expand(lowerObj: ScopeType,upperObj: ScopeType): ScopeHelper

创建并返回包括当前范围和给定下限和上限的并集。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

lowerObj

​ScopeType​

给定范围的下限。

upperObj

​ScopeType​

给定范围的上限。

返回值:

类型

说明

​ScopeHelper​

返回当前范围和给定下限和上限的并集。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.expand(tempMiDF, tempMidS);

expand9+

expand(range: ScopeHelper): ScopeHelper

创建并返回包括当前范围和给定范围的并集。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

range

​ScopeHelper​

传入一个给定范围。

返回值:

类型

说明

​ScopeHelper​

返回包括当前范围和给定范围的并集。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.ScopeHelper(tempLower, tempUpper);
let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS);
let result = range.expand(rangeFir);

expand9+

expand(value: ScopeType): ScopeHelper

创建并返回包括当前范围和给定值的并集。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

value

​ScopeType​

传入一个给定值。

返回值:

类型

说明

​ScopeHelper​

返回包括当前范围和给定值的并集。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.expand(tempMiDF);

contains9+

contains(value: ScopeType): boolean

检查给定value是否包含在当前范围内。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

value

​ScopeType​

传入一个给定值。

返回值:

类型

说明

boolean

如果给定值包含在当前范围内返回true,否则返回false。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.ScopeHelper(tempLower, tempUpper);
range.contains(tempMiDF);

contains9+

contains(range: ScopeHelper): boolean

检查给定range是否在当前范围内。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

range

​ScopeHelper​

传入一个给定范围。

返回值:

类型

说明

boolean

如果给定范围包含在当前范围内返回true,否则返回false。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let tempLess = new Temperature(20);
let tempMore = new Temperature(45);
let rangeSec = new util.ScopeHelper(tempLess, tempMore);
let result = range.contains(rangeSec);

clamp9+

clamp(value: ScopeType): ScopeType

将给定值限定到当前范围内。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

value

​ScopeType​

传入的给定值。

返回值:

类型

说明

​ScopeType​

如果传入的value小于下限,则返回lowerObj;如果大于上限值则返回upperObj;如果在当前范围内,则返回value。

示例:

let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.clamp(tempMiDF);


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-util-0000001428062016-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001428062016__导入模块​

已于2023-4-11 16:59:17修改
收藏
回复
举报
回复
    相关推荐