今日任务
- 剖析ArkTs语言体系(50%)
修真前言
当我完成了初始化日志的任务之后,脑海中被黑雾笼罩的那一块区域逐渐显示,弹窗随机提示恭喜通过初始化日志任务,来到基础法则大陆,在这里你将学习这个宇宙中最基础的法则之力,这将会是你后面修炼其他法则最强力的助力,今日任务完成:修炼基础法则之力ArkTs,随后脑子又陷入到了一个奇妙的环境………………
语言介绍
官方说明:ArkTS是一种为构建高性能应用而设计的编程语言。ArkTS在继承TypeScript语法的基础上进行了优化,以提供更高的性能和开发效率。
版本:HarmonyOS NEXT Developer Beta1
相关版本链接:developer.huawei.com/consumer/cn…
基本知识
声明
- let:以关键字let开头的声明引入变量,该变量在程序执行期间可以具有不同的值。
- const:以关键字const开头的声明引入只读常量,该常量只能被赋值一次。
- 自动类型推断:由于ArkTS是一种静态类型语言,所有数据的类型都必须在编译时确定。
类型
- Number类型:ArkTS提供number和Number类型,任何整数和浮点数都可以被赋给此类型的变量。
- Boolean类型:boolean类型由true和false两个逻辑值组成。
- String类型:string代表字符序列;可以使用转义字符来表示字符。
- Void类型:void类型用于指定函数没有返回值。
- Object类型:Object类型是所有引用类型的基类型。任何值,包括基本类型的值(它们会被自动装箱),都可以直接被赋给Object类型的变量。
- Array类型:array,即数组,是由可赋值给数组声明中指定的元素类型的数据组成的对象。
- Enum类型:enum类型,又称枚举类型,是预先定义的一组命名值的值类型,其中命名值又称为枚举常量。
- Union类型:union类型,即联合类型,是由多个类型组合成的引用类型。联合类型包含了变量可能的所有类型。
- Aliases类型:Aliases类型为匿名类型(数组、函数、对象字面量或联合类型)提供名称,或为已有类型提供替代名称。
运算符
- 赋值运算符

- 算术运算符

- 位运算符

- 逻辑运算符

语句
- If语句:if语句用于需要根据逻辑条件执行不同语句的场景。当逻辑条件为真时,执行对应的一组语句,否则执行另一组语句(如果有的话)。else部分也可能包含if语句。
- Switch语句:使用switch语句来执行与switch表达式值匹配的代码块。
- 条件表达式:条件表达式由第一个表达式的布尔值来决定返回其它两个表达式中的哪一个。
- For语句:for语句会被重复执行,直到循环退出语句值为false。
- For-of语句:使用for-of语句可遍历数组或字符串。
- While语句:只要condition为真值(转换后为true的值),while语句就会执行statements语句。
- Do-while语句:如果condition的值为真值(转换后为true的值),那么statements语句会重复执行。
- Break语句:使用break语句可以终止循环语句或switch。
- Continue语句:continue语句会停止当前循环迭代的执行,并将控制传递给下一个迭代。
- Throw和Try语句:throw语句用于抛出异常或错误:1. throw new Error('this error'),try语句用于捕获和处理异常或错误:1. try {// 可能发生异常的语句块} catch (e) {// 异常处理},支持finally语句
函数
- 函数声明:函数声明引入一个函数,包含其名称、参数列表、返回类型和函数体。
- 可选参数:可选参数的格式可为name?: Type。
- Rest参数:函数的最后一个参数可以是rest参数。使用rest参数时,允许函数或方法接受任意数量的实参。
- 返回类型:如果可以从函数体内推断出函数返回类型,则可在函数声明中省略标注返回类型。
- 函数的作用域:函数中定义的变量和其他实例仅可以在函数内部访问,不能从外部访问。如果函数中定义的变量与外部作用域中已有实例同名,则函数内的局部变量定义将覆盖外部定义。
- 函数调用:调用函数以执行其函数体,实参值会赋值给函数的形参。
- 函数类型:函数类型通常用于定义回调。
- 箭头函数或Lambda函数:函数可以定义为箭头函数,箭头函数的返回类型可以省略;省略时,返回类型通过函数体推断。表达式可以指定为箭头函数,使表达更简短,因此以下两种表达方式是等价的
- 闭包:闭包是由函数及声明该函数的环境组合而成的。该环境包含了这个闭包创建时作用域内的任何局部变量。
- 函数重载:们可以通过编写重载,指定函数的不同调用方式。具体方法为,为同一个函数写入多个同名但签名不同的函数头,函数实现紧随其后。
类
- 字段(字段是直接在类中声明的某种类型的变量):
实例字段->实例字段存在于类的每个实例上。每个实例都有自己的实例字段集合。
静态字段->使用关键字static将字段声明为静态。静态字段属于类本身,类的所有实例共享一个静态字段。
- 方法(方法属于类。类可以定义实例方法或者静态方法。静态方法属于类本身,只能访问静态字段。而实例方法既可以访问静态字段,也可以访问实例字段,包括类的私有字段。):
实例方法->构造类
静态方法->使用关键字static将方法声明为静态。静态方法属于类本身,只能访问静态字段。静态方法定义了类作为一个整体的公共行为。
继承:使用关键字static将方法声明为静态。静态方法属于类本身,只能访问静态字段。继承类继承基类的字段和方法,但不继承构造函数。继承类可以新增定义字段和方法,也可以覆盖其基类定义的方法。基类也称为“父类”或“超类”。继承类也称为“派生类”或“子类”。
父类访问:关键字super可用于访问父类的实例字段、实例方法和构造函数。
方法重写:子类可以重写其父类中定义的方法的实现。重写的方法必须具有与原始方法相同的参数类型和相同或派生的返回类型。
方法重载签名:通过重载签名,指定方法的不同调用。具体方法为,为同一个方法写入多个同名但签名不同的方法头,方法实现紧随其后。
- 构造函数(类声明可以包含用于初始化对象状态的构造函数。):
派生类的构造函数:构造函数函数体的第一条语句可以使用关键字super来显式调用直接父类的构造函数。
构造函数重载签名:我们可以通过编写重载签名,指定构造函数的不同调用方式。具体方法为,为同一个构造函数写入多个同名但签名不同的构造函数头,构造函数实现紧随其后。
- 可见性修饰符(类的方法和属性都可以使用可见性修饰符。可见性修饰符包括:private、protected和public。默认可见性为public。):
Public(公有):public修饰的类成员(字段、方法、构造函数)在程序的任何可访问该类的地方都是可见的。
Private(私有):private修饰的成员不能在声明该成员的类之外访问
Protected(受保护):protected修饰符的作用与private修饰符非常相似,不同点是protected修饰的成员允许在派生类中访问
- 对象字面量(对象字面量是一个表达式,可用于创建类实例并提供一些初始值。它在某些情况下更方便,可以用来代替new表达式。):
Record类型的对象字面量:泛型Record<K, V>用于将类型(键类型)的属性映射到另一个类型(值类型)。类型K可以是字符串类型或数值类型,而V可以是任何类型。
接口
- 接口属性:接口属性可以是字段、getter、setter或getter和setter组合的形式。属性字段只是getter/setter对的便捷写法。
- 接口继承:继承接口包含被继承接口的所有属性和方法,还可以添加自己的属性和方法。
修真结束
日光逐渐消退,我缓缓的睁开了眼睛,洞穴内全是法则动荡过的痕迹,我缓缓站起眺望远方,思考着基础法则之力不愧是一切的法则之源,一天的修炼加上筑基丹的加持仅仅只修炼了卷轴50%的法则之力,我大步跨去,实践着卷轴中的基础步伐,突然咕~~~~~~,眼睛望去远方的树林,邪魅一笑,心想那就拿你们来验我今日的成果吧,嗖~