详记ArkTS语言基础类库

1. ArkTS基础类库概述

ArkTS(Ark Type Script)是HarmonyOS应用开发的官方高级语言,基于TypeScript扩展而来,提供了丰富的基础类库支持。这些类库为开发者提供了全面的开发能力,覆盖了从基本数据处理到复杂容器操作的各种需求。

ArkTS基础类库主要包含以下核心能力:

  • 基本数据类型支持:提供标准的数据类型定义和操作接口
  • 容器类库:包括线性容器和非线性容器,支持各种数据结构操作
  • XML处理:支持XML的生成、解析和转换
  • JSON扩展:提供增强的JSON处理能力
  • 字符串和二进制数据处理:提供高效的字符串操作和二进制数据处理接口
  • 数值计算支持:包括数学函数和有理数操作
  • 并发编程支持:提供多线程和异步编程能力

2. 核心模块分类和功能说明

2.1 容器类库

容器类库是ArkTS基础类库的重要组成部分,分为线性容器和非线性容器两大类。

2.1.1 线性容器

线性容器保持元素的顺序,适用于按顺序访问数据的场景:

  • ArrayList:基于数组实现的动态列表,支持快速随机访问
  • LinkedList:双向链表实现,适用于频繁插入和删除操作
  • Vector:与ArrayList类似,但提供线程安全的实现
  • List:列表接口,支持顺序访问
  • Deque:双端队列,支持在两端进行插入和删除操作
  • Queue:队列接口,遵循先进先出(FIFO)原则
  • Stack:栈接口,遵循后进先出(LIFO)原则
2.1.2 非线性容器

非线性容器不保持元素的插入顺序,提供特定的数据组织方式:

  • HashMap:键值对映射,基于哈希表实现,提供快速查找
  • HashSet:不重复的值集合,基于哈希表实现
  • TreeMap:有序的键值对映射,基于红黑树实现
  • TreeSet:有序的值集合,基于红黑树实现
  • LightWeightMap:轻量级键值对映射,空间效率高
  • LightWeightSet:轻量级值集合
  • PlainArray:键为number类型的轻量级映射

2.2 数据处理模块

2.2.1 XML处理

ArkTS提供了完整的XML处理能力:

  • XML生成:通过XmlSerializer和XmlDynamicSerializer生成XML数据
  • XML解析:使用XmlPullParser解析XML文本
  • XML转换:将XML文本转换为JavaScript对象
2.2.2 JSON处理
  • JSON序列化/反序列化:支持对象与JSON格式的互相转换
  • JSON验证:对JSON数据进行有效性检查
2.2.3 字符串处理
  • 标准字符串操作:包含连接、分割、替换等基本操作
  • 格式化输出:支持多种数据类型的格式化
  • 编码解码:提供Base64等编码解码功能

2.3 数值计算模块

  • 标准数学函数:三角函数、对数函数、指数函数等
  • 有理数操作:提供高精度的数值计算能力
  • 复数运算:支持复数的算术运算
  • 矩阵运算:基本的矩阵操作

2.4 并发编程模块

  • TaskPool:任务池机制,支持异步任务的管理和执行
  • Worker:工作线程,提供多线程编程能力
  • Sendable:对象引用传递机制,支持线程间通信

3. 基本数据类型类库

ArkTS支持标准的数据类型,包括:

  • Number:用于表示数字值,支持整数和浮点数
  • String:用于表示文本字符串
  • Boolean:表示真/假值
  • NullUndefined:分别表示空值和未定义值
  • Symbol:用于创建唯一的、不可变的值
  • Bigint:用于表示大整数

此外,ArkTS还提供了Buffer和FastBuffer类,用于处理二进制数据,特别适用于网络编程和文件操作等场景。

4. 集合框架类库

4.1 List集合

List集合是有序的、可重复的集合,主要包括:

  • ArrayList:最常用的动态数组实现
  • LinkedList:双向链表实现,适用于频繁插入和删除
  • Vector:线程安全的动态数组实现

4.2 Set集合

Set集合是无序的、不可重复的集合:

  • HashSet:基于哈希表实现的集合
  • TreeSet:基于红黑树实现的有序集合
  • LightWeightSet:轻量级实现的集合

4.3 Map集合

Map集合是键值对的存储结构:

  • HashMap:基于哈希表实现的键值对存储
  • TreeMap:基于红黑树实现的有序键值对存储
  • LightWeightMap:轻量级实现的键值对存储
  • PlainArray:键为number类型的轻量级键值对存储

5. 字符串处理类库

ArkTS提供了丰富的字符串处理功能:

5.1 字符串操作

  • 连接操作:使用+或concat()连接字符串
  • 分割操作:使用split()分割字符串为数组
  • 查找操作:使用indexOf()、lastIndexOf()等方法查找子字符串
  • 替换操作:使用replace()替换字符串中的内容
  • 修剪操作:使用trim()去除字符串两端的空白字符

5.2 字符串格式化

ArkTS提供了模板字符串和格式化方法,可以方便地格式化字符串:

// 模板字符串
let name = "HarmonyOS";
console.log(`Hello, ${name}!`); // 输出: Hello, HarmonyOS!

// 字符串格式化
let formatted = "Hello, %s!".format(name);
console.log(formatted); // 输出: Hello, HarmonyOS!

5.3 编码解码

  • Base64编码解码:用于数据的编码和解码
  • URL编码解码:用于URL参数的编码和解码
  • UTF-8编码解码:用于字符编码处理

6. 数值计算和数学函数类库

6.1 标准数学函数

ArkTS提供了完整的数学函数库:

  • 三角函数:sin()、cos()、tan()等
  • 对数函数:log()、log10()等
  • 指数函数:exp()、pow()等
  • 取整函数:floor()、ceil()、round()等
  • 随机数生成:random()等

6.2 有理数操作

为了提供高精度的数值计算,ArkTS引入了有理数类型:

import { Rational } from '@ohos.math';

let r1 = new Rational(1, 3); // 1/3
let r2 = new Rational(2, 5); // 2/5
let sum = r1.add(r2); // 11/15

6.3 复数运算

ArkTS支持复数的算术运算:

import { Complex } from '@ohos.math';

let c1 = new Complex(1, 2); // 1 + 2i
let c2 = new Complex(3, 4); // 3 + 4i
let sum = c1.add(c2); // 4 + 6i
let product = c1.multiply(c2); // (1-2i) + 6i - 8 = -7 + 10i

7. 时间日期处理类库

ArkTS提供了Date类用于处理日期和时间:

// 获取当前日期时间
let now = new Date();
console.log(`当前时间: ${now}`);

// 设置特定日期时间
let birthday = new Date(2025, 10, 12); // 注意: 月份从0开始, 10代表11月
console.log(`生日: ${birthday}`);

// 时间戳操作
let timestamp = Date.now();
console.log(`当前时间戳: ${timestamp}`);

ArkTS还提供了处理不同时区、时间格式化和时间计算的丰富API。

8. IO操作类库

ArkTS通过File模块提供文件系统操作能力:

import { File } from '@ohos.fileio';

// 读取文件
try {
    let data = File.read('/data/data.txt', 'r');
    console.log(`文件内容: ${data}`);
} catch (e) {
    console.error(`读取文件失败: ${e}`);
}

// 写入文件
try {
    File.write('/data/data.txt', 'w', 'Hello, HarmonyOS!');
    console.log('写入成功');
} catch (e) {
    console.error(`写入文件失败: ${e}`);
}

ArkTS还支持文件的追加写入、文件信息查询、文件删除等操作。

9. 异常处理机制

ArkTS采用了TS/JS的异常处理机制:

try {
    // 可能抛出异常的代码
    let result = someFunctionThatMayThrow();
} catch (e) {
    // 异常处理
    console.error(`捕获到异常: ${e}`);
} finally {
    // 无论是否发生异常都会执行的代码
    cleanupResources();
}

ArkTS还支持自定义错误类型,开发者可以继承Error类创建自己的错误类型。

10. 网络和数据解析类库

10.1 HTTP网络请求

ArkTS通过HttpRequest模块提供HTTP网络请求能力:

import { HttpRequest } from '@ohos.net.http';

// 创建HTTP客户端
let client = new HttpRequest();

// 发送GET请求
client.get('https://api.example.com/data', (err, response) => {
    if (err) {
        console.error(`GET请求失败: ${err}`);
        return;
    }
    console.log(`GET响应: ${response.data}`);
});

// 发送POST请求
let data = { key: 'value' };
client.post('https://api.example.com/submit', data, (err, response) => {
    if (err) {
        console.error(`POST请求失败: ${err}`);
        return;
    }
    console.log(`POST响应: ${response.data}`);
});

10.2 JSON数据解析

ArkTS支持标准的JSON解析和序列化:

// JSON序列化
let obj = { name: 'HarmonyOS', version: 5 };
let jsonStr = JSON.stringify(obj);
console.log(`JSON字符串: ${jsonStr}`);

// JSON解析
let parsedObj = JSON.parse(jsonStr);
console.log(`解析后的对象: ${parsedObj.name}, ${parsedObj.version}`);

11. UI组件相关的基础类库

ArkTS提供了丰富的UI构建基础:

11.1 布局管理

  • Flex布局:支持弹性盒子布局
  • 约束布局:支持基于约束的布局
  • 表格布局:支持表格形式的布局

11.2 绘制和渲染

  • Canvas绘图:提供基于Canvas的绘图能力
  • 路径绘制:支持贝塞尔曲线、弧线等复杂路径的绘制
  • 图像处理:支持图像的绘制、裁剪和变换

11.3 动画效果

  • 补间动画:支持属性渐变动画
  • 帧动画:支持基于帧的动画
  • 转场动画:支持页面间的转场效果

12. 通用工具类和辅助函数

ArkTS提供了许多通用工具类和辅助函数:

  • 数组工具:includes()、find()、findIndex()等
  • 日期工具:用于日期格式化和计算
  • 字符串工具:用于字符串操作和处理
  • 数学工具:用于数学计算和随机数生成
  • 系统工具:用于获取系统信息和偏好设置

13. 内存管理和资源处理

13.1 内存管理

ArkTS采用自动内存管理,开发无需手动管理内存,垃圾回收器会自动回收不再使用的内存。

13.2 资源管理

  • 文件资源:使用File模块管理文件资源
  • 网络资源:使用Net模块管理网络资源
  • 图形资源:使用Graphics模块管理图形资源
  • 音频资源:使用Audio模块管理音频资源

14. 多线程和并发处理

ArkTS提供了强大的并发编程支持:

14.1 TaskPool

TaskPool用于管理和执行异步任务:

import { TaskPool } from '@ohos.taskpool';

// 创建任务池
let pool = new TaskPool();

// 提交任务
pool.submit(() => {
    // 异步任务逻辑
    console.log('任务执行中...');
});

// 关闭任务池
pool.shutdown();

14.2 Worker

Worker提供多线程编程能力:

// 主线程
import { Worker } from '@ohos.worker';

let worker = new Worker('./worker.js');
worker.postMessage({ task: 'compute' });
worker.onmessage = (event) => {
    console.log(`收到Worker消息: ${event.data}`);
};
// Worker线程 (worker.js)
onmessage = (event) => {
    // 处理任务
    let result = compute(event.data.task);
    postMessage(result);
};

14.3 Sendable

Sendable用于在线程间传递对象:

import { Sendable } from '@ohos.sendable';

class Data extends Sendable {
    value: number;

    constructor(value: number) {
        super();
        this.value = value;
    }
}

// 在主线程中
let data = new Data(42);
worker.postMessage(data);

// 在Worker线程中
onmessage = (event) => {
    let data = event.data as Data;
    console.log(`收到数据: ${data.value}`);
};

15. 属性装饰器和元数据

ArkTS支持属性装饰器,可以用于添加元数据或修改属性行为:

function Log装饰器(target: any, propertyKey: string) {
    let value = target[propertyKey];

    Object.defineProperty(target, propertyKey, {
        get: function() {
            console.log(`获取属性: ${propertyKey}`);
            return value;
        },
        set: function(newValue) {
            console.log(`设置属性: ${propertyKey} = ${newValue}`);
            value = newValue;
        }
    });
}

class ExampleClass {
    @Log装饰器
    someProperty: string;

    constructor() {
        this.someProperty = '初始值';
    }
}

总结

ArkTS语言基础类库为HarmonyOS应用开发提供了全面而强大的支持,涵盖了从基本数据类型到复杂并发编程的各种需求。通过合理使用这些类库,可以高效地构建功能丰富、性能优良的HarmonyOS应用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L.EscaRC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值