注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下
如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识
专栏地址: https://blog.csdn.net/qq_56760790/category_12794123.html
文章所属类目(HarmonyOS 语言-ArkTS)
目录
1. 基本介绍
ArkTS是HarmonyOS优选的主力应用开发语言。在UI开发框架中,ArkTS主要扩展了如下能力:
如果有 Vue等的使用经验概念上可以很快上手
ArkTS它是纯新的一门语言,它不是前端也不是TypeScript,它是TS的超集
ArkTS 文件使用的后缀名是 ets
2. 语法
2.1 变量声明
定义
以关键字let开头的声明引入变量,该变量在程序执行期间可以具有不同的值。
代码示例
let fruit: string = '苹果';
fruit = '香蕉';
2.2 常量声明
定义
以关键字const开头的声明引入只读常量,该常量只能被赋值一次。
代码示例
const fruit: string = '苹果';
对常量重新赋值会造成编译时错误。
变量、常量的命名规则:
- 只能包含数字、字母、下划线、$,不能以数字开头
- 不能使用内置关键字或保留字(比如let const)
- 严格区分大小写
2.3 自动类型推断
由于ArkTS是一种静态类型语言,所有数据的类型都必须在编译时确定。
但是,如果一个变量或常量的声明包含了初始值,那么开发者就不需要显式指定其类型。ArkTS规范中列举了所有允许自动推断类型的场景。
以下示例中,两条声明语句都是有效的,两个变量都是string类型:
let fruit1: string = '苹果';
let fruit2 = '香蕉';
2.4 联合类型
联合类型是一种灵活的数据类型,它修饰的变量可以存储不同类型的数据;
语法:
let 变量:类型1|类型2|类型3 =值
let sex:string|number;
sex=0
sex='男'
2.5 数组
定义
数组,是一个容器,可以存储多个数据;
语法:
let 数组名:类型[]=[数据1,数据2,....]
let names:string[]=['小头','东林']
注意:数组指定的类型和存储的数据类型必须要一致,否则会报错
数组中存储的每个数据,都有自己的编号,编号从0开始(索引)
联合类型数组:
let names:(string|number)[]=[1,2,'小头']
2.6 函数
函数:是可以被重复使用的代码块
函数分为以下四种类型:
1、无参无返回值
2、无参有返回值
3、有参有返回值
4、有参无返回值
调用函数:
函数名()
函数的完整用法
1、无参无返回值
function test(){
console.log('我是无参无返回值函数');
}
2、无参有返回值
function test(): number {
console.log('我是无参有返回值函数');
return 3;
}
3、有参有返回值
function test(a: number, b: number): number {
console.log('我是有参有返回值函数');
return a + b;
}
4、有参无返回值
function test(name: string) {
console.log(name + '要好好学习');
}
2.7 类
类声明引入一个新类型,并定义其字段、方法和构造函数。
在以下示例中,定义了Person类,该类具有字段name和like、构造函数和方法play:
class Person {
name: string = ''
like: string = ''
constructor(name: string, like: string) {
this.name = name;
this.like = like;
}
play() {
console.log(this.name + '喜欢' + this.like)
}
}
定义类后,可以使用关键字new创建实例:
let p = new Person('东林', '篮球');
p.play()
2.8 接口
接口声明引入新类型。接口是定义代码协定的常见方式。
可以通过接口结合 implements 来限制 类 必须要有某些属性和方法
任何一个类的实例只要实现了特定接口,就可以通过该接口实现多态。
接口通常包含属性和方法的声明
interface People{
name:string
like:string
play():void
}
实现接口的类示例:
class Teach implements People {
name: string
like: string
constructor(name: string, like: string) {
this.name = name
this.like = like
}
play(): void {
console.log(this.name + '喜欢' + this.like)
}
}
let t=new Teach('东林','篮球')
t.play()