鸿蒙next开发第一课03.ArkTs语法介绍-文章

鸿蒙next开发03ArkTS语言介绍-学习

作为一个Java开发者,我也完全是一名鸿蒙开发的新手,之所以选择鸿蒙开发,还是因为Java佬已经过时,目前需要紧跟潮流,学习最新的技术,那么鸿蒙是不二之选。

今天来学习第03课,建议大家学完之后做一下习题,完成习题之后就会有一个证书颁发。因为之前我们的证书已经拿到手了。

f7f3cb62220cd9385efa205ad529e717.jpeg

前言

如何学习一门新的语言。根据学习Java的经验,肯定就是这一套班子。

  1. 了解这个语言的特性。
  2. 学习定义变量
  3. 运算符
  4. 条件语句
  5. 循环语句
  6. 定义函数
  7. 如果是面向对象语言,一定有封装继承多态。
  8. 进阶第二阶段,例如读取文件,网络编程,多线程等。

下面就来一起学习一下吧。

了解这个语言的特性。

这个其实没有必要花时间,既然选择了这个,就无需再纠结哪个语言更好了,PHP是世界上最好的语言又怎么样,一样要被时代所抛弃。

华为官方的介绍:

6db7c113a26a94e1764801408ebb1b71.jpeg

说得很全面,但是作为新手,不需要了解那么多,总结了一下:

  1. 在javaScript的基础上TypeScript的基础上发展而来,也就是你懂js或者ts很快就可以学会。
  2. 鸿蒙系统中加入了自己的底层,编译ATS的时候比TS更快(变量的类型为强类型,函数声明都比TS规范)
  3. 有一套ArkUI作为支撑,编写前端界面更加得心应手。
  4. 说完了,就这些。

学习定义变量

以关键字let开头的声明引入变量,该变量在程序执行期间可以具有不同的值

  1. let hi: string = 'hello';
  2. hi = 'hello, world';

以关键字const开头的声明引入只读常量,该常量只能被赋值一次。

  1. const hello: string = 'hello';

对常量重新赋值会造成编译时错误。

数据类型:

Number类型:包含了整数和浮点数

Boolean类型:boolean类型由true和false两个逻辑值组成。

String类型:string代表字符序列;可以使用转义字符来表示字符。

  1. let s1 = 'Hello, world!\n';
  2. let s2 = 'this is a string';
  3. let a = 'Success';
  4. let s3 = `The result is ${a}`;

Void类型:void类型用于指定函数没有返回值

Object类型

Object类型是所有引用类型的基类型。任何值,包括基本类型的值(它们会被自动装箱),都可以直接被赋给Object类型的变量。

Array类型

array,即数组,是由可赋值给数组声明中指定的元素类型的数据组成的对象。

Enum类型

enum类型,又称枚举类型,是预先定义的一组命名值的值类型,其中命名值又称为枚举常量。

运算符

大差不差,

比较运算符!==,==!=,>,<,>=,<=

算术运算符一元运算符为-、+、--、++。+,-,*,/

位运算符 a & b, a | b, a ^ b

逻辑运算符 a && b , a || b , ! a

条件语句

这个是一模一样,不用学了

  1. if (condition1) {
  2. // 语句1
  3. } else if (condition2) {
  4. // 语句2
  5. } else {
  6. // else语句
  7. }

循环语句

比较特殊一点的for-of语句

  1. for (forVar of expression) {
  2. statements
  3. }
  4. for (let ch of 'a string object') {
  5. /* process ch */
  6. }
  7. let sum = 0;
  8. for (let i = 0; i < 10; i += 2) {
  9. sum += i;
  10. }

Break和continue没有区别了

6 ,函数的声明和使用

函数声明

函数声明引入一个函数,包含其名称、参数列表、返回类型和函数体。

以下示例是一个简单的函数,包含两个string类型的参数,返回类型为string:

  1. function add(x: string, y: string): string {
  2. let z: string = `${x} ${y}`;
  3. return z;
  4. }

在函数声明中,必须为每个参数标记类型。如果参数为可选参数,那么允许在调用函数时省略该参数。函数的最后一个参数可以是rest参数。

可选参数

可选参数的格式可为name?: Type。

  1. function hello(name?: string) {
  2. if (name == undefined) {
  3. console.log('Hello!');
  4. } else {
  5. console.log(`Hello, ${name}!`);
  6. }
  7. }

Rest参数

函数的最后一个参数可以是rest参数。使用rest参数时,允许函数或方法接受任意数量的实参。

  1. function sum(...numbers: number[]): number {
  2. let res = 0;
  3. for (let n of numbers)
  4. res += n;
  5. return res;
  6. }
  7. sum() // 返回0
  8. sum(1, 2, 3) // 返回6

7,封装继承多态

函数重载

  1. function foo(x: number): void; /* 第一个函数定义 */
  2. function foo(x: string): void; /* 第二个函数定义 */
  3. function foo(x: number | string): void { /* 函数实现 */
  4. }
  5. foo(123); // OK,使用第一个定义
  6. foo('aa'); // OK,使用第二个定义

类的定义

  1. class Person {
  2. name: string = ''
  3. age: number = 0
  4. constructor(n: string, a: number) {
  5. this.name = n;
  6. this.age = a;
  7. }
  8. getName(): string {
  9. return this.name;
  10. }
  11. }
  12. let p1 = new Person('Alice', 25);
  13. p1.name;
  14. let p2 = new Person('Bob', 28);
  15. p2.getName();

继承

  1. class [extends BaseClassName] [implements listOfInterfaces] {
  2. // ...
  3. }

class Person {

  1. name: string = ''
  2. private _age = 0
  3. get age(): number {
  4. return this._age;
  5. }
  6. }
  7. class Employee extends Person {
  8. salary: number = 0
  9. calculateTaxes(): number {
  10. return this.salary * 0.42;
  11. }
  12. }

包含implements子句的类必须实现列出的接口中定义的所有方法,但使用默认实现定义的方法除外。

接口

接口声明引入新类型。接口是定义代码协定的常见方式。

任何一个类的实例只要实现了特定接口,就可以通过该接口实现多态。

接口通常包含属性和方法的声明

  1. interface Style {
  2. color: string // 属性
  3. }
  4. interface AreaSize {
  5. calculateAreaSize(): number // 方法的声明
  6. someMethod(): void; // 方法的声明
  7. }

实现接口的类示例:

  1. // 接口:
  2. interface AreaSize {
  3. calculateAreaSize(): number // 方法的声明
  4. someMethod(): void; // 方法的声明
  5. }
  6. // 实现:
  7. class RectangleSize implements AreaSize {
  8. private width: number = 0
  9. private height: number = 0
  10. someMethod(): void {
  11. console.log('someMethod called');
  12. }
  13. calculateAreaSize(): number {
  14. this.someMethod(); // 调用另一个方法并返回结果
  15. return this.width * this.height;
  16. }
  17. }

总结

总体来说,如果有语言基础,学习起来还是比较简单,尤其是有Java的基础,后面的封装继承多态几乎就是一样的了,我们都知道,学习Java的时候,就是被封装继承多态搞蒙了,现在回过头来再看看arkts的这套,是不是很简单。

接下来,我们按照官方的实例,开发一个简单的基础案例出来。

关注我,下节更精彩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值