为有牺牲多壮志,敢教日月换新天。

ArkTS基础语法

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ 
➤GitHub地址:https://github.com/strengthen
➤原文地址:https://www.cnblogs.com/strengthen/p/18470886
➤如果链接不是为敢技术的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 

一、ArkTS基本概念

左侧这段TypeScript代码,展示了没有类型的场景,如果没有类型,编译器不知道变量area的类型,也就不能确定对象的布局,编译器无法很好的优化这段代码,造成性能瓶颈,没有类型也会造成其属性的类型缺少。例如:area.offset的类型,在此时为number,但它也可以被赋值为其他类型,造成额外的运行时检查和开销。在ArkTS中对此类型明确做了限制,必须声明明确的类型,如变量area对应的类型,是由系统提供的图片属性,这样就保证了该类型在运行时是明确的,减少了运行时的类型检查。

下面例子,展示了在TypeScript中如何在运行时通过添加和删除某些属性,来更改对象的布局,在TypeScript中,是可以通过动态给一个对象新增属性或者删除一个属性的, 语言运行时如果需要支持此类特性,会造成大量的性能开销,所以ArkTS中,不支持使用any类型,也不支持在运行时使用delete操作符,来更改对象的布局。

ArkTS为来支持UI的开发,提供了相关的UI描述语法。为了支持状态在应用中的共享,提供了相应的状态管理语法,满足状态的传递和共享机制。

二、ArkTS基础知识
ArkTS中变量和常量:

ArkTS的类型:

console.log()方法,传入的参数需要是字符串类型,也就是string类型。

基础类型:

引用类型:最典型的就是内置的数组类型,数组是将一组类型的元素按照顺序排列到一起的容器。另外,自定义类都是以Object为基类。都属于引用类型,

枚举类型:可以定义为一组待选项, 

 联合类型:用于一个变量可能会有多个类型的情况。

类型别名:用来定义现有类型的替代名称,使用关键字type进行声明。当想要在上下文中,使用更合适的名称,来引用现有的类型时,就可以取一个更符合语义的类型名称,

 空安全机制的三种方式:

ArkTS是类型安全的语言,ide在编辑态时,就会对类型进行实时检查,当赋值当类型与实际的类型不匹配时,就会提示错误信息。

ArkTS还支持类型推导,在没有指定类型时,会自动推导符合上下文的合适类型。

 条件语句:

 循环语句:

三、函数的声明和使用
函数:是一组一起执行的多条语句的组合,用来提高程序的可重用性。

箭头函数:也可以叫做lambda表达式 ,可以用来简化函数的声明,通常用于一个需要简单函数的地方。箭头函数使用等于加大于号连接参数返回类型和函数体,返回类型可以省略,省略时返回类型将通过函数体进行推断。在执行体内容只有一行的情况下,可以省略花括号。并且也可以将箭头函数赋值给一个变量,例如printInfo。执行时也可以像调用普通函数一样执行。大多数时候,箭头函数用于作为回调函数使用。例如:在数组的forEach方法中,传入一个箭头函数,用于遍历时的操作。

闭包函数:闭包是函数式编程中一个有用的工具,通过闭包创建一个函数并返回,可以保留对内部作用域的访问。

下面例子中,outerFunc的返回值是一个函数类型,在结果中返回了一个箭头函数,通过invoker接收了outerFunc的执行结果。invoker这个函数就保留了对count的访问,每次执行invoker函数时,都可以直接访问到count的值。

如果在多个地方都用到这个函数类型,就可以使用type,对返回的函数类型取一个类型别名,方便后续的管理。

四、类的声明和使用
ArkTS是一个多范式的语言,支持函数式编程,也支持面向对象的编程方式。
面向对象的方式,则是把这些基本特征,抽象成一个实体,体现在代码里,则是 用class声明一个Person类。
1、实例化的两种方式:
(1)、通过new关键字实例创建。
(2)、通过字面量的方式进行创建。

2、如果需要实例化出不同的对象内容,可以自定义constructor,在constructor中,给对应的属性传入初值,则在new的时候只需要传入接收的参数,就可以创建不同的实例对象。

3、方法的使用

4、封装:是将数据和相关的操作组合到一起,形成一个相对独立的实体。通过封装可以将数据隐藏起来,只对外部提供必要的接口,来访问和操作数据,同时也可以保证数据的一致性和安全性。

5、继承:是一种建立在现有类的基础上,创建新类的机制。通过继承,子类可以继承并重用父类的属性和方法,从而减少重复代码,实现了代码的复用和层次化设计,继承使用extends关键字,在构造器中通过super执行父类的构造方法。

6、多态:多态常常和继承一起,表示子类继承父类,并且重写父类方法,那么父类和子类的实例化对象,在同一行为下,就可以有不同的表现。

五、接口的声明和使用
接口:是可以用来约束和规范类的方法,提升开发效率的工具,在应用程序开发中,接口的设计对程序的开发,具有非常重要的作用。可以通过interface关键字来声明接口,在接口中可以声明属性,也可以声明方法,但是不需要给属性具体的值以及方法给出对应的实现。对于只有属性的接口,可以通过字面量的方式创建对象实例而如果接口中声明了方法,则无法通过字面量的方式来进行创建。

可以使用implements关键字对接口进行实现。实现中必须遵循接口所约定的属性和方法,保持相同的名称,并且对接口中声明的方法进行具体的实现。

六、块的导入和导出 

在应用开发中,会将代码拆分到多个文件,这样更加有利于开发的维护和管理,在ArkTS中一个文件就可以是一个模块,由于不同文件之间的作用域是隔离的,一个文件如果想引用其他文件中的函数、类或者变量,就需要使用export和import关键字,来进行模块的导入和导出。

例如:在一个文件中定义的Person类,如果需要在其他文件中引用这个类,首先需要在这个Person类的前面加上一个修饰符export。

在另一个文件中,例如Page.ets中 ,通过import的方式,从对应文件路径,引入导出的Person类,这样Page.ets中就可以使用Person这个类了。

模块是一个重要的概念,在开发中合理使用模块的导入和导出,可以实现代码的复用和组合。能够提高编码效率。

posted @ 2024-10-16 20:52  为敢技术  阅读(42)  评论(0编辑  收藏  举报