HarmonyOS 鸿蒙Next 课程尝鲜计划 编程语言介绍

HarmonyOS 鸿蒙Next 课程尝鲜计划 编程语言介绍 #HarmonyOS课程尝鲜计划#编程语言介绍

作者:坚果

前言

通过此次课程尝鲜计划学习,了解到ArkTS、TypeScript和JavaScript之间的关系,并入门了TypeScript基础语法,同时更深入学习到List组件、Grid组件,Tabs组件的使用,每个课程都讲得很详细, 期待HarmonyOS更多新升级与功能。

1.编程语言介绍

ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。在本课程中对于ArkTS,TypeScript,JavaScript的关系也做了梳理。但是这编辑器插图麻烦,懒得插了。

2. TypeScript快速入门

TypeScript支持一些基础的数据类型,如布尔型、数组、字符串等,

布尔值

TypeScript中可以使用boolean来表示这个变量是布尔值,可以赋值为true或者false。

let isDone: boolean = false;

字符串

TypeScript里使用 string表示文本数据类型, 可以使用双引号( ")或单引号(’)表示字符串。

let name: string = "坚果";

数组

TypeScrip有两种方式可以定义数组。 第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组。

let list: number[] = [1, 2, 3];

元组

TypeScript 提供了元组来表示已知元素数量和类型的数组,元组内的各元素的类型不必相同,但是对应位置的类型必须一致。

let user: [string, number, string]; // 定义一个元组
user = ["坚果", 25, '兰州'];     

enum

TypeScript 提供了 enum 关键字表示枚举类型,枚举类型主要用于定义数值的集合。

enum Color {               // 定义一个枚举
  Red,
  Green,
  Blue
}
let c: Color = Color.Blue; // 定义枚举类型

Void

TypeScript 提供了 void 关键字表示函数的返回类型为空,也就是函数没有返回值。

function test(): void {
   console.log('This is function is void');
}

undefined

TypeScript 提供了 undefined 关键字表示声明了一个变量但并没有赋值的情况。

let data;             

联合类型

TypeScript 允许通过 | 将一个变量设置成多种类型,赋值的时候可以根据设置的类型来赋值。

let data: string | number; // 设置data为联合类型
data = '坚果';      // 正确
data = 25;                 // 正确

3. 条件语句

条件语句用于基于不同的条件来执行不同的动作。TypeScript 条件语句是通过一条或多条语句的执行结果(True 或 False)来决定执行的代码块。

这部分和其他编程语言类似,主要有if 语句if…else 语句if…else if…else 语句switch…case 语句。不做过多学习

4 函数

函数就是包裹在花括号中的代码块,前边使用 function 关键字,语法格式如下:

function function_test() {
  // 执行代码
}

例如声明函数如下:

function log() { // 声明一个函数
  console.log("坚果");         // 代码块
}

函数调用

函数只有通过调用才可以执行函数内的代码,语法格式如下:

function_test()

函数返回值

如果希望得到函数的执行结果,可以使用 return 语句,语法如下:

function function_test(): return_type {
    return value; // return语句
}

上面是函数的基础,此外还有

可选参数

语法:

function func_name(param1: paramType, param2?: paramType) {
}

举例:

function buildName(firstName: string, age?: number) {
    if (lastName)
        return firstName + ' ' + lastName;
    else
        return firstName;
}

let result1 = buildName('坚果');
let result2 = buildName('坚果', 25); 

剩余参数

剩余参数会被当做个数不限的可选参数。 可以一个都没有,同样也可以有任意个。 可以使用省略号( …)进行定义:

语法:

function func_name(param1: paramType, param2: paramType, ...params: paramType[]) {
}

举例

function getEmployeeName(firstName: string, ...restOfName: string[]) {
  return firstName + ' ' + restOfName.join(' ');
}

let employeeName = getEmployeeName('坚果', '组织', '专注于', 'HarmonyOS布道');

箭头函数

ES6版本的TypeScript提供了一个箭头函数,它是定义匿名函数的简写语法,用于函数表达式,它省略了function关键字。箭头函数的定义如下,其函数是一个语句块:

([param1, parma2,…param n])=> {
    // 代码块
}

其中,括号内是函数的入参,可以有0到多个参数,箭头后是函数的代码块。我们可以将这个箭头函数赋值给一个变量,

5 类

TypeScript支持基于类的面向对象的编程方式,定义类的关键字为 class,后面紧跟类名。类描述了所创建的对象共同的属性和方法。

类的定义

class class_name {
  // 类作用域
}

举例:

class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  info(): string {
     return `My name is ${this.name} and age is ${this.age}`;
  }
}

创建类对象

类定义完后,可以通过 new 关键字实例化一个类的对象,实例化类对象即调用类的构造方法,语法如下

let object_name = new class_name([ args ])

类的继承

TypeScript 支持继承类,创建类的时候可以使用关键字 extends 继承一个已有的类,这个已有的类称为父类,继承它的类称为子类。子类除了不能继承父类的私有成员(方法和属性)和构造函数,其他的都可以继承。语法如下:

class Employee extends Person {
   department: string

  constructor(name: string, age: number, department: string) {
    super(name, age);
    this.department = department;
  }

  public getEmployeeInfo(): string {
    return this.info() + ` and work in ${this.department}`;
  }
}

通过上面的Employee类,我们可以定义一个人物坚果,这里可以获取他的基本信息,也可以获取他的雇主信息,其定义如下:

let person2 = new Employee('坚果', 25, '润开鸿');
person2.info();
person2.getEmployeeInfo();

访问修饰符

TypeScript 中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。TypeScript 支持 3 种不同的访问权限。

  • public(默认):公有,可以在任何地方被访问。
  • protected:受保护,可以被其自身以及其子类访问。
  • private:私有,只能被其定义所在的类访问。
class Person {
  name: string;
  private age: number;                  // age为private,外界无法访问

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  info(): string {
     return `My name is ${this.name} and age is ${this.age}`;
  }
}

var person = new Person('jianguo', 25);
console.log(person.name);               // harmony
console.log(person.age.toString());     // 编译报错,age为private

6 模块

随着应用越来越大,通常要将代码拆分成多个文件,即所谓的模块(module)。模块可以相互加载,并可以使用特殊的指令 export 和 import 来交换功能,从另一个模块调用一个模块的函数。

两个模块之间的关系是通过在文件级别上使用 import 和 export 建立的。模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export 导出它们。类似地,我们必须通过 import 导入其他模块导出的变量、函数、类等。

7 迭代器

当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。一些内置的类型如Array,Map,Set,String,Int32Array,Uint32Array等都具有可迭代性。

let list = [1, 2, 3];

for (let i in list) {
    console.log(i); // "0", "1", "2",
}

for (let i of list) {
    console.log(i); // "1", "2", "3"
}

总结

本文我们跟随课程简单介绍了 TS 基础语法部分,掌握这些基础部分可以支撑日常简单应用开发了。查看更多,可以在参考TypeScript的官方教程


更多关于HarmonyOS 鸿蒙Next 课程尝鲜计划 编程语言介绍的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

学习

更多关于HarmonyOS 鸿蒙Next 课程尝鲜计划 编程语言介绍的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next 课程尝鲜计划 编程语言介绍”这一问题,鸿蒙(HarmonyOS)作为华为自主研发的操作系统,其在开发过程中支持多种编程语言以适应不同的开发需求和场景。在鸿蒙Next课程尝鲜计划中,主要介绍的编程语言可能包括但不限于以下几种:

  1. ArkTS(Ark TypeScript):这是鸿蒙系统推出的一种专门用于UI开发的声明式编程语言。ArkTS基于TypeScript扩展,开发者可以使用它高效地进行界面开发,享受声明式编程带来的简洁与高效。

  2. eTS(Efficient TypeScript):与ArkTS类似,eTS也是鸿蒙系统中用于UI开发的一种编程语言,它强调开发效率与性能,适合快速构建高质量的用户界面。

  3. Dart:虽然鸿蒙系统本身不直接依赖Dart语言,但考虑到Dart在Flutter框架中的广泛应用,以及Flutter与鸿蒙系统的良好兼容性,Dart语言在鸿蒙开发社区中也有一定的影响力。不过,在鸿蒙Next课程尝鲜计划中,Dart可能不作为重点介绍对象。

  4. 其他辅助语言:在鸿蒙系统的开发过程中,还可能涉及到一些辅助性的脚本语言或工具语言,如Shell脚本等,用于自动化构建、部署和测试等环节。

请注意,以上信息可能随鸿蒙系统的发展而有所变化。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部