HarmonyOS Next 5.0 数据基础类型

211 阅读2分钟

在鸿蒙 Next 5.0 中,数据基础类型主要包括以下几种常见的类型,这些类型是开发中经常用到的基本数据结构:

1. 基本数据类型

  • 布尔类型(Boolean)

    TypeScript复制

    let isDone: boolean = false;
    
  • 数字类型(Number)

    TypeScript复制

    let decLiteral: number = 6;
    let hexLiteral: number = 0xf00d;
    let binaryLiteral: number = 0b1010;
    let octalLiteral: number = 0o744;
    
  • 字符串类型(String)

    TypeScript复制

    let name: string = "bob";
    name = "smith";
    let sentence: string = `Hello, my name is ${name}. I'll be ${age + 1} years old next month.`;
    
  • 数组类型(Array)

    TypeScript复制

    let list: number[] = [1, 2, 3];
    let list: Array<number> = [1, 2, 3];
    
  • 元组(Tuple)

    TypeScript复制

    let x: [string, number];
    x = ['hello', 10];
    
  • 枚举(Enum)

    TypeScript复制

    enum Color {Red, Green, Blue}
    let c: Color = Color.Green;
    

2. 对象(Object)

在 ArkTS 中,对象是一个通用类型,可以表示普通对象、数组、元组、集合等:

TypeScript复制

let obj = { "name": "AbnerMing" };
let test: Test = new Test();
let numberArray = [1, 2, 3, 4, 5];
let numberArrayObj = new Array<number>();
let tuple: [string, number] = ["age", 10];
let list = new ArrayList<number>();
let map = new HashMap<string, number>();

3. 标准化数据类型(UTD)

鸿蒙 Next 还提供了一套标准化数据类型(Uniform Type Descriptor,UTD),用于跨应用、跨设备的数据交互。常见的标准化数据类型包括:

  • 纯文本(Text)

    TypeScript复制

    import { UnifiedData, UnifiedRecord } from '@ohos.arkui';
    let textData = new UnifiedData();
    let textRecord = new UnifiedRecord({
      type: 'text',
      value: {
        text: '这是一个纯文本示例。'
      }
    });
    textData.addRecord(textRecord);
    
  • 超链接(Hyperlink)

    TypeScript复制

    let hyperlinkData = new UnifiedData();
    let hyperlinkRecord = new UnifiedRecord({
      type: 'hyperlink',
      value: {
        uri: 'https://www.example.com',
        title: '访问示例网站'
      }
    });
    hyperlinkData.addRecord(hyperlinkRecord);
    
  • HTML

    TypeScript复制

    let htmlData = new UnifiedData();
    let htmlRecord = new UnifiedRecord({
      type: 'html',
      value: {
        html: '<h1>这是一个HTML标题</h1><p>这是一个段落。</p>',
        baseUri: 'https://www.example.com'
      }
    });
    htmlData.addRecord(htmlRecord);
    

4. 自定义数据类型

如果标准化数据类型无法满足特定需求,可以自定义数据类型。例如:

  • 定义自定义类型ID

    TypeScript复制

    const CUSTOM_VIDEO_TYPE_ID = 'com.example.customvideo';
    
  • 定义文件后缀和 MIME Type

    TypeScript复制

    const CUSTOM_VIDEO_FILE_EXTENSION = '.myvid';
    const CUSTOM_VIDEO_MIME_TYPE = 'application/vnd.example.myvid';
    
  • 实现自定义类型处理逻辑

    TypeScript复制

    class CustomVideo {
      constructor(filePath: string) {
        this.filePath = filePath;
        this.contentType = CUSTOM_VIDEO_MIME_TYPE;
      }
      processVideo() {
        // 实现视频处理逻辑
      }
    }
    

通过这些基础数据类型和标准化数据类型,开发者可以在鸿蒙 Next 5.0 中灵活地构建应用,实现丰富多样的用户交互。