开源 Arkts 鸿蒙应用 开发(三)Arkts语言的介绍

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发,公司安排开发app,临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

 相关链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-CSDN博客

 推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

本章节主要讲述鸿蒙开发中Arkts语言的介绍,这里主要讲一些特别和常用的语法和应用,旨在快速开发,详细的还是需要查看,官网文档中心

内容如下:

1.  声明,变量和常量以及各种不同类型的数据的声明。

2.  结构,主要的结构基本和其他语言相通

3.  .har的工程应用

一、声明,变量和常量以及各种不同类型的数据的声明

1.1  变量和常量

let hi: string = 'hello';
hi = 'hello, world';const hello: string = 'hello';

1.2  number

number类型,和许多语言不同,任何整数和浮点数都可以被赋给此类型的变量。

数字字面量包括整数字面量和十进制浮点数字面量。

数字字面量包括整数字面量和十进制浮点数字面量。

整数字面量包括以下类别:

let n1 = 3.14;
let n2 = 3.141592;
let n3 = .5;
let n4 = 1e2;function factorial(n: number): number {if (n <= 1) {return 1;}return n * factorial(n - 1);
}factorial(n1)  //  7.660344000000002 
factorial(n2)  //  7.680640444893748 
factorial(n3)  //  1 
factorial(n4)  //  9.33262154439441e+157 

1.3  string

字符串字面量由单引号(')或双引号(")之间括起来的零个或多个字符组成。字符串字面量还有一特殊形式,是用反向单引号(`)括起来的模板字面量。

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

1.4  Object

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

let o1: Object = 'Alice';
let o2: Object = ['a','b'];
let o3: Object = 1;

1.5  Array

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

let names: string[] = ['Alice', 'Bob', 'Carol'];

二、结构

主要的结构和其他语言基本相通,比如if,switch,for,while等,不同的有For of,函数等。

2.1  For of

使用for-of语句可遍历数组、Set、Map、字符串等可迭代的类型

for (forVar of IterableExpression) {// process forVar
}

2.2  函数

function add(x: string, y: string): string {let z: string = `${x} ${y}`;return z;
}

2.3  函数重载

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

三、类的使用

3.1  类的定义和使用

class Person {name: string = '';surname: string = '';constructor (n: string, sn: string) {this.name = n;this.surname = sn;}fullName(): string {return this.name + ' ' + this.surname;}
}let p = new Person('John', 'Smith');
console.log(p.fullName());

构造函数

constructor ([parameters]) {// ...
}

如果未定义构造函数,则会自动创建具有空参数列表的默认构造函数

class Point {x: number = 0;y: number = 0;
}
let p = new Point();

3.2  类的继承

class Person {name: string = '';private _age = 0;get age(): number {return this._age;}
}
class Employee extends Person {salary: number = 0;calculateTaxes(): number {return this.salary * 0.42;}
}

父类的访问

关键字super可用于访问父类的实例字段、实例方法和构造函数。在实现子类功能时,可以通过该关键字从父类中获取所需接口:

class RectangleSize {protected height: number = 0;protected width: number = 0;constructor (h: number, w: number) {this.height = h;this.width = w;}draw() {/* 绘制边界 */}
}
class FilledRectangle extends RectangleSize {color = ''constructor (h: number, w: number, c: string) {super(h, w); // 父类构造函数的调用this.color = c;}draw() {super.draw(); // 父类方法的调用// super.height -可在此处使用/* 填充矩形 */}
}

3.3  接口

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

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

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

// 接口:
interface AreaSize {calculateAreaSize(): number; // 方法的声明someMethod(): void;     // 方法的声明
}// 实现:
class RectangleSize implements AreaSize {private width: number = 0;private height: number = 0;someMethod(): void {console.log('someMethod called');}calculateAreaSize(): number {this.someMethod(); // 调用另一个方法并返回结果return this.width * this.height;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84695.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hot100 -- 16.多维动态规划

1.不同路径 问题&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条…

优先级继承和优先级天花板(pthread_mutexattr_setprotocol)

优先级继承和优先级天花板&#xff0c;均可以解决优先级翻转问题。 优先级翻转&#xff1a; 实例观察优先级翻转和优先级继承现象-CSDN博客 如果有两个线程A和B&#xff0c;A的优先级大于B的优先级。在B获取锁之后&#xff0c;释放锁之前&#xff0c;A想要获取锁&#xff0c…

Spark on Hive表结构变更

Spark on Hive表结构变更 1、表结构变更概述1、表结构变更概述 在Spark on Hive架构中,表结构(Schema)变更是一个常见且重要的操作。理解其背景、使用场景以及具体方式对于大数据平台管理至关重要 1.1、Spark on Hive元数据管理 Hive Metastore(HMS): 核心组件。它是一个…

NotePad++ 怎么没有找到插件管理?

今天想使用NotePad阅读markdown文档&#xff0c;却发现未安装插件&#xff0c;本想通过插件管理安装一下&#xff0c;结果没有插件管理&#xff01;&#xff01;&#xff01;&#xff01; 我发现帮助菜单里面有一个入口 可惜的是网页无法打开。。。 只能自己下载插件了。 将插件…

内容搜索软件AnyTXT.Searcher忘记文件名也能搜,全文检索 1 秒定位文件

各位文件搜索小能手们&#xff01;你们有没有过这种糟心事儿&#xff0c;想找个文件&#xff0c;死活想不起文件名&#xff0c;在电脑里一顿乱翻&#xff0c;眼睛都找瞎了也没找到。今天我就给你们介绍一款神器——AnyTXT.Searcher&#xff0c;它可是免费的全文检索工具&#x…

uniapp实现像qq消息列表左滑显示右侧操作栏效果

先看效果图 代码 SlidableChatEntry.vue <template><!-- 聊天项列表 --><view class"chat-item"touchstart"handleTouchStart($event)"touchmove"handleTouchMove($event)"touchend"handleTouchEnd()"><!-- 聊…

收集了一些用python做mysql增删改查的资料

还是因为最近在开发fastapi应用、现在需要把一些关键信息存库&#xff0c;所以就很想要一些这方面的资料。我这里找到一些&#xff0c;希望你看了帖子能节省一些时间。 前边说过如何搭建fastapi开发环境&#xff0c;帖子链接为&#xff1a; https://blog.csdn.net/weixin_4298…

嵌入式软件面经(一)Q: 什么是Modbus协议?它有哪些特点?

Modbus协议是一种开放式的工业通讯协议&#xff0c;最初由Modicon公司&#xff08;现施耐德电气Schneider Electric&#xff09;于1979年开发&#xff0c;广泛应用于工业现场设备之间的数据通讯&#xff0c;尤其适用于PLC&#xff08;可编程逻辑控制器&#xff09;与现场仪表、…

Java-52 深入浅出 Tomcat SSL工作原理 性能优化 参数配置 JVM优化

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月13日更新到&#xff1a; AI炼丹日志-29 - 字节…

day44-硬件学习之arm启动代码

一、跳转指令实现函数调用 LR&#xff08;链接寄存器&#xff09;&#xff1a;保留函数返回地址 1.1 bl指令 跳转指令bl,使LR保存当前函数进入前的下一条指令的地址&#xff0c;使函数调用后可以返回下一条指令的地址&#xff1b; 1.2 bx指令 跳到目标地址&#xff1b; 1.3 栈…

【数据结构】七种常见排序算法

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 欢迎来到排序算法的学习&#xff0c;恭喜你&#xff01;本期内容主要介绍排序算法&#xff0c;一起来探索吧~ &#xf…

Spring AOP 代理模式解析

一、核心概念&#xff1a;代理模式就像房屋中介 想象你要租一套房子&#xff1a; 你&#xff1a;租客&#xff08;业务调用者&#xff09;房东&#xff1a;房主&#xff08;真实业务对象&#xff09;中介&#xff1a;代理对象 传统方式&#xff08;无代理&#xff09; 租客…

智能制造——案例解读16页制造业指标体系搭建指导【附全文阅读】

文档的主要内容可以总结如下&#xff1a; **文档概述**&#xff1a; 本文档详细探讨了企业为何需要指标体系、指标体系的定义、如何搭建指标体系、如何有效拆解和管理指标&#xff0c;并最后提供了制造业指标体系的参考。 **主要内容**&#xff1a; 1. **企业为什么需要指标体系…

Pandas 数据清洗

数据清洗是数据分析过程中至关重要的一环&#xff0c;也是初学者最容易忽视的步骤。本文将详细介绍如何使用Pandas进行数据清洗&#xff0c;涵盖空值处理、日期格式修正、错误数据识别和重复数据删除四大核心内容。 1. Pandas 清洗空值 空值是数据集中最常见的问题之一&#…

C++容器之 forward_list (单向链表)使用说明

目录 1. 语法格式 2. 说明 3. 用法示例 1. 语法格式 描述控制可变长度元素序列的对象。该序列存储为单向(前向)链接的节点列表&#xff0c;每个节点包含一个 Type 类型的成员。 template <class Type, class Allocator allocator<Type>> class forward_lis…

ali 轻量服务器安装nginx

# Ubuntu sudo apt install nginx-light # 精简版 # CentOS sudo yum install nginx #启动并设置开机自启 sudo systemctl daemon-reload sudo systemctl start nginx sudo systemctl enable nginx #验证安装 nginx -v curl -I 127.0.0.1 #常用命令&#xff1a; # 重新加载配…

【设计模式】4.代理模式

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 代理模式 1. 第一版 class SchoolGirl:def __init__(self):self._name Nonepropertydef name(self):return self._namename.setterdef name(self, valu…

基于微信小程序的美食点餐订餐系统

文章目录 1. 项目概述2. 项目思维导图3. 系统架构特点4. 核心模块实现代码1. 登录注册2. 首页模块实现4. 分类模块实现5. 购物车模块实现6. 订单模块实现 5. 注意事项6. 项目效果截图7. 关于作者其它项目视频教程介绍 1. 项目概述 在移动互联网时代&#xff0c;餐饮行业数字化…

[neo4j]介绍4个开源的知识图谱项目

项目主要介绍几个开源项目&#xff1a; QASystemOnMedicalKG&#xff1a;医疗知识图谱问答 https://github.com/liuhuanyong/QASystemOnMedicalKG Agriculture_KnowledgeGraph&#xff1a;农业知识图谱 Financial-Knowledge-Graphs&#xff1a;小型金融知识图谱 stock-know…

20倍光学镜头怎么实现20+20倍数实现

1. 硬件选择 球机摄像头 选择40倍光学变焦的摄像头 &#xff1a;确保摄像头具有足够的变焦能力&#xff0c;同时考虑摄像头的分辨率、帧率、夜视功能等。 内置云台 &#xff1a;许多高端摄像头已经内置了云台功能&#xff0c;如果是这样&#xff0c;可以简化机械设计和电机控制…