鸿蒙HarmonyOS————ArkTs介绍(1)

最近除了人工智能,还有一个很火的HarmonyOS,HarmonyOS是华为公司开发的一款面向全场景的分布式操作系统,旨在为消费者提供跨设备无缝协同体验。它支持多种智能终端设备,包括但不限于智能手机、平板电脑、智能穿戴设备、智能家居设备以及车载系统等。

我们在DevEco Studio中编写我们的代码,具体下载方式可以去b站找。 

我们在这个界面进行操作。 

 今天就来带大家了解下HarmonyOS的ArkTs,不知道大家学过c,java,或者python语言没有,ArkTs就像java中的语法,字符串怎么定义呀,数组怎么使用呀,再或者是函数怎么使用,对象怎么创建之类的,如果没学过的话,我们就把它当做语法就完了。

1,认识数据和存储数据

我们在这里将数据分为三种数据类型,

(1)数字类型number

(2)字符串类型string

(3)布尔类型boolean

我们来试着创建三个数据变量我们这里使用let 类型名: 来创建变量;

我们先在这上面写,通过日志来看自己代码的状态

let num:number = 18;
let char:string = '神秘的t'
let boo:boolean = true

这样我们就成功创建了三个变量,我们试着去打印它(打印,显示到日志我们用console.log() )

console.log('数字',num)
console.log('字符串',char)
console.log('布尔类型',boo)

我们点击这个小玩意,就可以在日志上看到了

2,常量和变量的命名规则 

(1)常量

什么是常量呢,常量就是不可改变的量,我们定义完之后是不可以修改的,我们使用const来修饰

const num2: number = 20
const char2: string = '巧克力'
num2 = 18

我们定义了两个常量,我们试着把其中一个常量num2改为18, 

我们发现报错了,“不能改变num2的值,因为他是常量”

(2)变量

那么变量就是可以改变的量了, let 变量名:变量类型

let num:number = 18;
let char:string = '神秘的t'
let boo:boolean = true

我们试着修改它

num = 12
console.log('数字为',num)

我们成功修改了num的值。。

3,数组

我觉得数组的话大家就很熟了,我们基础的数据类型只能存储一个数据,而数组呢,就方便我们存储一堆相同的数据类型

创建方法:let 数组名:数据类型[] = []

我们试着创建三种数据类型的数组

let nums:number[] = [1,2,4,5,6]
let nums2:string[] = ['数学','语文','英语']
let nums3:boolean[] = [true,false,false]

打印

console.log('数组num为',nums)
console.log('数组nums2为',nums2)
console.log('数组nums3为',nums3)

我们成功打印了

如何获得元素呢,就是数组名加索引nums[]即可 

console.log('num的第一个元素是',nums[0])

 4,函数

函数是什么呢,函数就是java中的方法,比如我们要打印一行数吧,我们要多次打印这行数,我们们要打印好多好多行,但是我们用函数把打印好多好多行放到一个函数中的话,我们只需要调用这个函数就能完成操作了。

基本构成:function 函数名() {}

我们试着来创建一个加法函数

function add(num1:number,num2:number) {let num3:number = num1+num2;return num3
}
let a:number = add(12,34);
console.log('加法结果为',a)

括号里是可以放参数的,return代表这个函数的返回一个什么样的值。我们来接收这个函数的返回值。

除了基本的函数外,新增了一个箭头函数,跟普通的函数差不多,但是后期我们有不同的使用场景,

基本构成:let 函数名 = () =>   { }

括号里可以放参数,再用箭头函数来实现加法函数


let add1 = (num1:number,num2:number) => {let num3:number = num1+num2;return num3;
}
let b:number = add(12,32);
console.log('加法结果为',b)

打印成功了。

5,接口与对象

 对象和接口是什么,我们为什么要这两个东西,我们之前的数据类型要不是描述数字,要不就是字符串,那么我们要描述一只小狗呢,我们就可以创建一个小狗对象,小狗对象中有很多的属性,比如小狗的年龄,小狗的名字等等。

接口:interface 接口名 {}

对象:let 对象名 :接口 = {}

我们现在就试着创建一个小狗类

interface dog {name:stringage:numbercolor:string
}let dog1:dog ={name: '旺财',age: 1,color: '白色'
}

我们成功创建了一个小狗对象,但是真的创建了吗,我们试着去访问我们创建的dog1对象,我们使用对象.属性名来调用

console.log('名字是',dog1.name,'年龄是',dog1.age,'颜色是',dog1.color)

 我们还可以在接口和对象中添加方法来完善这个对象,比如小狗还会叫,还会吃东西,我们在添加个shout方法和eat方法

interface Dog{age:numbername:stringcolor:stringshout: () => voideat: () => void
}let dog:Dog = {age:1,name:'旺财',color:'彩色',shout: () => {console.log('小狗',dog.name,'正在叫')},eat: () => {console.log('小狗',dog.name,'正在吃饭')}
}dog.shout()
dog.eat()

 6,联合类型

再ArkTs中我们还有一种联合类型,联合类型就是能存多种类型的变量,比如我们定义一个变量,我即想存字符串,又想存数字,我们就使用联合类型。

let 数据名: 数据类型|数据类型|数据类型

let num:string|number = 12
num = '派大星'
console.log('num为',num)

我们看到并没有报错,而是成功打印,说明我们创建的num变量成功包含number和string两种数据类型了,我们还可以用联合类型来限定num能输出的值,

let num:1|2|3
num = 4
console.log('num为',num)

 

我们看到发生报错了嗷,我们不能把4赋值给联合类型为1,2,3的值了。 

7,枚举类型

枚举类型又是什么,枚举类型是一种特殊的类型,它约定变量只能在一组数据范围内,那不是跟刚才的联合类型差不多吗,但是枚举类型很方便,怎么说呢,就比如我们后面界面开发,字体的粗细,我们只要找有关字体的枚举类型,枚举类型中有可选择的字体粗细,看着很方便,后面我们具体来说。

enum 枚举名{

        常量1 = 值

        常量2 = 值

}

enum TColor{red = 1,blue = 2,yellow = 3
}let color:TColor = TColor.red
console.log('颜色是',color)

 这样我们就成功了。

我们下期来了解ArkUI。

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

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

相关文章

<Project-11 Calculator> 计算器 0.3 年龄计算器 age Calculator HTML JS

灵感 给工人发工资是按小时计算的,每次都要上网,我比较喜欢用 Hours Calculator ,也喜欢它的其它的功能, 做个类似的。 我以为是 Python,结果在学 javascript 看 HTML,页面的基础还停留在 Frontpage 2000…

【学术论文投稿】自动化运维:解锁高效运维的密钥

【连续三届IEEE出版|EI检索】第三届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2024)_艾思科蓝_学术一站式服务平台 更多学术会议请看:https://ais.cn/u/nuyAF3 目录 引言 一、自动化运维概述 1. 自动化运维的定义 2. 自动化运…

Qt中使用线程之QRunnable

1、自定义1个子类继承自QRunnable 2、重写run方法,编写子线程的业务逻辑 3、使用QThreadPool的全局方法来开启这个线程 4、线程的回收不需要关注,由QThreadPool处理 5、缺点:无法使用信号槽机制 6、适合一些不需要和主线程通信的耗时的任…

SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载

文章目录 前言一、控制器层代码二、服务层代码三、代码亮点分析 前言 SpringBoot的同步excel导出方式中,服务会阻塞直到Excel文件生成完毕,如果导出数据很多时,效率低体验差。有效的方案是将导出数据拆分后利用CompletableFuture,…

【图论】(四)最小生成树与拓扑排序

最小生成树与拓扑排序 最小生成树之prim(P算法)相关概念结题思路拓展 最小生成树之kruska(K算法)过程模拟程序实现拓展 拓扑排序背景与思路模拟过程程序实现 最小生成树之prim(P算法) 相关概念 P算法是用…

『完整代码』坐骑召唤

创建一个按钮 作为召唤/消失坐骑的开关 将预制体放入指定文件夹 命名为Mount01 创建脚本并编写:CallMount.cs using UnityEngine; using UnityEngine.UI; public class CallMount : MonoBehaviour{public Button callBtn;GameObject mountPrefab;GameObject mountIn…

CentOS7 上安装GitLab的经历

一、安装必要的基础环境 1.安装依赖包 [rootgitlab-server ~]#yum install curl policycoreutils openssh-server openssh-clients postfix wget git patch -y [rootgitlab-server ~]# systemctl start postfix 2.配置yum源(由于网络问题,国内用户请使用清华大学…

导数的概念及在模型算法中的应用

一. 导数概念与计算 1. 导数的物理意义: 瞬时速率。一般的,函数yf(x)在x处的瞬时变化率是 2. 导数的几何意义: 曲线的切线,当点趋近于P时,直线 PT 与曲线相切。容易知道,割线的斜率是当点趋近于 P 时&…

数字孪生:引领智慧农业的未来

在现代农业中,数字化与智能化的浪潮正在改变传统的种植方式。数字孪生技术作为一种创新的数字化解决方案,正在深刻改变智慧农业的面貌,尤其是在大棚智能控制、数据全面可视、加工过程监控和物流运输溯源等方面展现出巨大的潜力。 frontop数字…

【动手学深度学习】8.1. 序列模型(个人向笔记)

想象一下有人正在看网飞(Netflix,一个国外的视频网站)上的电影。 一名忠实的用户会对每一部电影都给出评价, 毕竟一部好电影需要更多的支持和认可。 然而事实证明,事情并不那么简单。 随着时间的推移,人们对…

《Python基础教程》笔记(ch0-1)

前言 在Python生态系统中,各种包轮番登场,各种编码实践大行其道后又日渐式微。 引言 Python是什么?为何要使用它?官方宣传说:Python是一种面向对象的解释性高级编程语言,具有动态语义。 这句话的要点在…

监控易DEMO功能深度解析:运维行业的智能化转型新助力

在数字化转型的浪潮中,运维行业正面临着前所未有的变革与挑战。为了应对日益复杂的IT架构和不断提升的运维需求,监控易的集中式跨平台一体化监控软件不断升级优化,以适应新的运维环境。本文将对监控易DEMO的功能进行深度解析,探讨…

简单介绍冯诺依曼体系

现代的计算机, 大多遵守冯诺依曼体系结构 CPU中央处理器:进行算术运算和逻辑判断。存储器:分为外存和内存,用于存储数据(使用二进制方式存储)。输入设备:用户给计算机发号施令。输出设备:计算机…

Hadoop生态圈三大组件:HDFS的读写流程、MapReduce计算流程、Yarn资源调度

文章目录 1. HDFS的读写流程1.1 HDFS读流程1.2 HDFS写流程 2. MapReduce计算流程3. Yarn资源调度一、客户端请求资源二、Resource Manager处理请求三、任务资源计算与申请四、Resource Manager分配资源五、Node Manager执行任务六、任务执行与监控 1. HDFS的读写流程 1.1 HDFS…

沃德商协会管理系统小程序源码

商协会管理系统小程序,作为新一代数字化商协会运营管理的先锋工具,其核心围绕“智慧化会员体系、智敏化内容运营、智能化活动构建”三大核心板块精心构建。这一系统通过智慧化会员体系,实现了会员信息的精准管理与高效互动,不仅简…

2024_E_100_连续字母长度

连续字母长度 题目描述 给定一个字符串&#xff0c;只包含大写字母&#xff0c;求在包含同一字母的子串中&#xff0c;长度第 k 长的子串的长度&#xff0c;相同字母只取最长的那个子串。 输入描述 第一行有一个子串(1<长度<100)&#xff0c;只包含大写字母。 第二行为…

Rancher2.6管理k8s1.23

Rancher2.6管理k8s1.23 简介Rancher和k8s的区别 安装rancher初始化实验环境新增hosts文件条目安装docker 安装Rancher登录Rancher平台 通过Rancher仪表盘管理k8s集群&#xff1a;部署tomcat服务创建Ingress资源创建ingress规则 简介 Rancher是一个开源的企业级多集群Kubernete…

HarmonyOS 开发知识总结

1. HarmonyOS 开发知识总结 1.1. resources->base->media中不可以新建文件夹&#xff1f; 项目图片路径resources->base->media中不可以新建文件夹&#xff0c;图片全平级放里面&#xff0c;查找图片不方便&#xff0c;有没有什么其他的办法解决这个难点&#xff…

Scala入门基础(12)抽象类

抽象类&#xff0c;制定标准&#xff0c;不要求去具体实现 包含了抽象方法的类就是抽象类。抽象方法只是有方法名&#xff0c;没有具体方法体的方法 定义抽象类要用abstract&#xff08;抽象&#xff09;关键字 用智能驾驶技术举例&#xff1a;演示&#xff09…

干货|基于Taro框架开发微信小程序如何配置实现自动格式化和代码规范

下面实例是基于 Taro框架使用React开发微信小程序的实现自动格式化和代码规范的配置教程 安装 ESLint 和 Prettier 插件&#xff1a; 在微信开发者工具的插件市场中搜索并安装 ESLint 和 Prettier 插件。 配置 .eslintrc.js 文件&#xff1a; 确保项目根目录下有一个 .eslint…