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的类型:
console.log()方法,传入的参数需要是字符串类型,也就是string类型。
基础类型:
引用类型:最典型的就是内置的数组类型,数组是将一组类型的元素按照顺序排列到一起的容器。另外,自定义类都是以Object为基类。都属于引用类型,
枚举类型:可以定义为一组待选项,
联合类型:用于一个变量可能会有多个类型的情况。
类型别名:用来定义现有类型的替代名称,使用关键字type进行声明。当想要在上下文中,使用更合适的名称,来引用现有的类型时,就可以取一个更符合语义的类型名称,
空安全机制的三种方式:
ArkTS是类型安全的语言,ide在编辑态时,就会对类型进行实时检查,当赋值当类型与实际的类型不匹配时,就会提示错误信息。
ArkTS还支持类型推导,在没有指定类型时,会自动推导符合上下文的合适类型。
条件语句:
循环语句:
箭头函数:也可以叫做lambda表达式 ,可以用来简化函数的声明,通常用于一个需要简单函数的地方。箭头函数使用等于加大于号连接参数返回类型和函数体,返回类型可以省略,省略时返回类型将通过函数体进行推断。在执行体内容只有一行的情况下,可以省略花括号。并且也可以将箭头函数赋值给一个变量,例如printInfo。执行时也可以像调用普通函数一样执行。大多数时候,箭头函数用于作为回调函数使用。例如:在数组的forEach方法中,传入一个箭头函数,用于遍历时的操作。
闭包函数:闭包是函数式编程中一个有用的工具,通过闭包创建一个函数并返回,可以保留对内部作用域的访问。
下面例子中,outerFunc的返回值是一个函数类型,在结果中返回了一个箭头函数,通过invoker接收了outerFunc的执行结果。invoker这个函数就保留了对count的访问,每次执行invoker函数时,都可以直接访问到count的值。
如果在多个地方都用到这个函数类型,就可以使用type,对返回的函数类型取一个类型别名,方便后续的管理。
2、如果需要实例化出不同的对象内容,可以自定义constructor,在constructor中,给对应的属性传入初值,则在new的时候只需要传入接收的参数,就可以创建不同的实例对象。
3、方法的使用
4、封装:是将数据和相关的操作组合到一起,形成一个相对独立的实体。通过封装可以将数据隐藏起来,只对外部提供必要的接口,来访问和操作数据,同时也可以保证数据的一致性和安全性。
5、继承:是一种建立在现有类的基础上,创建新类的机制。通过继承,子类可以继承并重用父类的属性和方法,从而减少重复代码,实现了代码的复用和层次化设计,继承使用extends关键字,在构造器中通过super执行父类的构造方法。
6、多态:多态常常和继承一起,表示子类继承父类,并且重写父类方法,那么父类和子类的实例化对象,在同一行为下,就可以有不同的表现。
可以使用implements关键字对接口进行实现。实现中必须遵循接口所约定的属性和方法,保持相同的名称,并且对接口中声明的方法进行具体的实现。
在应用开发中,会将代码拆分到多个文件,这样更加有利于开发的维护和管理,在ArkTS中一个文件就可以是一个模块,由于不同文件之间的作用域是隔离的,一个文件如果想引用其他文件中的函数、类或者变量,就需要使用export和import关键字,来进行模块的导入和导出。
例如:在一个文件中定义的Person类,如果需要在其他文件中引用这个类,首先需要在这个Person类的前面加上一个修饰符export。
在另一个文件中,例如Page.ets中 ,通过import的方式,从对应文件路径,引入导出的Person类,这样Page.ets中就可以使用Person这个类了。
模块是一个重要的概念,在开发中合理使用模块的导入和导出,可以实现代码的复用和组合。能够提高编码效率。