鸿蒙4.0开发笔记之ArkTS语法的基础数据类型[DevEco Studio开发](七)
文章目录
- 一、基本数据类型的定义
- 1、变量声明
- 2、数字类型
- 3、字符串类型
- 4、布尔类型
- 5、数组类型
- 6、元组类型
- 7、枚举类型
- 8、联合类型(少用)
- 9、未知Unkown类型
- 10、未定义和空值类型
- 二、数据类型的使用
- 1、组件内部声明变量不需要使用let关键字
- 2、使用Divider()可以添加一根分割线
- 3、其他变量的调用练习
一、基本数据类型的定义
1、变量声明
变量名要求(和大部分编程语言基本一致):
- 变量名称可以包含数字和字母。
- 变量名不能以数字开头。
- 除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。
- 不能使用关键字和保留字(已经定义了特殊含义的单词)
在TypeScript的语法中,声明变量需要加上前缀关键字let。
//变量声明并赋值:变量的初始化
let name: string = 'Next'
//变量声明,后面需要再单独赋值
let age: number
age = 25
2、数字类型
TypeScript里面的所有数字都是浮点数,这些浮点数类型表示为 number。除了支持十进制,还支持二进制、十六进制和八进制。如下便是定义方式:
//number类型可以表示不同进制的数值类型
//浮点型
let num1: number = 3.1415926
//二进制
let num2: number = 0b10110
//十六进制
let num3: number = 0xAB
//八进制
let num4: number = 0o304
3、字符串类型
TypeScript里使用 string表示文本数据类型, 可以使用双引号( ")或单引号(')表示字符串或者反引号(`)。
注意:反引号为英文状态下输入左上角的~键(ESC下面的一个键),该种形式的字符串表达可以解析变量
//string可以用多种引号表达字符串类型
//双引号
let s1: string = "逝者如斯,而未尝往也。"
//单引号
let s2: string = '盈虚者如彼,而卒莫消长也。'
//反引号:英文状态下输入左上角的~键(ESC下面的一个键),该种形式的字符串表达可以解析变量
let s3: string = `s1:${s1} , s2:${s2}`
//字符串拼接
let s4: string = "拼接" + s3 + "反引号内容"
4、布尔类型
TypeScript中可以使用boolean来表示这个变量是布尔值,可以赋值为true或者false。不是C语言中的0和1来表示,而且需要注意不能写成True和False,首字母不需要大写。
//布尔类型boolean
let b1: boolean = true
let b2: boolean = false
5、数组类型
两种定义数组的方式:
- let 变量名: string[]
- let 变量名: Array
//数组类型Array
let view1: string[] = ['江上','清风','山间','明月']
let view2: Array<string> = ['造物者','东方既白']
//利用数组的索引值取用,第一个元素下标为0开始,第二个为1,依次类推
//即view1[0]表示“江上”,view1[1]表示“清风”
6、元组类型
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string和number类型的元组。
//元组,与数组有一定相似性,但是元组可以同时存储不同类型数据
let x: [number, string] //声明
x = [25, 'Next'] //正确赋值
// x = ['Next', 25] //错误赋值
7、枚举类型
enum类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字,这样可以增加程序的可读性。
//枚举类型
enum myColor{Bl = 'blue',Re = 'red',Ye = 'yellow',Gr = 'green'
}
8、联合类型(少用)
联合类型(Union Types)表示取值可以为多种类型中的一种,是用在不确定类型的情况下。
let unions: number | boolean | string
unions = 29
unions = false
unions = 'Next'
9、未知Unkown类型
有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。那么我们可以使用unknown类型来标记这些变量。
//未知数据类型:当不知道数据类型时或者后期需要变化数据类型时可以用
let notSure: unknown = 25
notSure = 'I am Next'
notSure = 27
notSure = false
10、未定义和空值类型
在HarmonyOS的ArkTS语法里,也是TypeScript中,undefined和null两者各自有自己的类型分别叫做undefined和null。
let u: undefined = undefined;
let n: null = null;
二、数据类型的使用
1、组件内部声明变量不需要使用let关键字
而且在调用组件内变量时,需要使用this去引用。
//在组件内部声明变量不需要加let关键字dates: string = '2023/11/28'//调用组件内部声明的变量:需要使用this才能调用Divider()Text(this.dates).fontSize(30).fontWeight(FontWeight.Bold).fontColor(myColor.Gr)
2、使用Divider()可以添加一根分割线
该函数可以直接在组件内使用。

3、其他变量的调用练习
//变量声明并赋值:变量的初始化
let name: string = 'Next'
//变量声明,后面需要再单独赋值
let age: number
age = 25//number类型可以表示不同进制的数值类型
//浮点型
let num1: number = 3.1415926
//二进制
let num2: number = 0b10110
//十六进制
let num3: number = 0xAB
//八进制
let num4: number = 0o304//string可以用多种引号表达字符串类型
//双引号
let s1: string = "逝者如斯,而未尝往也。"
//单引号
let s2: string = '盈虚者如彼,而卒莫消长也。'
//反引号:英文状态下输入左上角的~键(ESC下面的一个键),该种形式的字符串表达可以解析变量
let s3: string = `s1:${s1} , s2:${s2}`
//字符串拼接
let s4: string = "拼接" + s3 + "反引号内容"//布尔类型boolean
let b1: boolean = true
let b2: boolean = false//数组类型Array
let view1: string[] = ['江上','清风','山间','明月']
let view2: Array<string> = ['造物者','东方既白']
//利用数组的索引值取用,第一个元素下标为0开始,第二个为1,依次类推//元组,与数组有一定相似性,但是元组可以同时存储不同类型数据
let x: [number, string] //声明
x = [25, 'Next'] //正确赋值
// x = ['Next', 25] //错误赋值//联合类型:联合类型(Union Types)表示取值可以为多种类型中的一种。
let unions: number | boolean | string
unions = 29
unions = false
unions = 'Next'//枚举类型
enum myColor{Bl = 'blue',Re = 'red',Ye = 'yellow',Gr = 'green'
}//未知数据类型:当不知道数据类型时或者后期需要变化数据类型时可以用
let notSure: unknown = 25
notSure = 'I am Next'
notSure = 27
notSure = false//可以在组件中使用全局变量
@Entry
@Component
struct Index {//在组件内部声明变量不需要加let关键字dates: string = '2023/11/28'build() {Row() {Column() {//文本一:通过索引值访问并显示数组里面的元素Text(view1[1]).fontSize(50).fontWeight(FontWeight.Bold)//分割线Divider()//文本二:使用布尔值进行两种数值的切换显示,若if判断的是b2,则会显示num3// 显示数值需要转换成字符串类型if (b1) {Text(num1.toString()).fontSize(50).fontWeight(FontWeight.Bold).fontColor(myColor.Bl) //调用枚举类型} else {Text(num3.toString()).fontSize(50).fontWeight(FontWeight.Bold).fontColor(myColor.Gr)}//调用组件内部声明的变量:需要使用this才能调用Divider()Text(this.dates).fontSize(30).fontWeight(FontWeight.Bold).fontColor(myColor.Gr)}.width('100%')}.height('100%')}
}

相关文章:
鸿蒙4.0开发笔记之ArkTS语法的基础数据类型[DevEco Studio开发](七)
文章目录 一、基本数据类型的定义1、变量声明2、数字类型3、字符串类型4、布尔类型5、数组类型6、元组类型7、枚举类型8、联合类型(少用)9、未知Unkown类型10、未定义和空值类型 二、数据类型的使用1、组件内部声明变量不需要使用let关键字2、使用Divide…...
集成学习的两种常见策略:bagging VS. boosting
chatGPT回答,记在这里。 集成学习是一种通过组合多个弱学习器来构建一个更强大的学习器的方法。其中,bagging和boosting是两种常见的集成学习策略。 一、bagging & boosting 简介 Bagging(自助聚集法): Bagging…...
居家适老化设计第三十四条---卫生间之照明
居家适老化卫生间照明设计需要考虑以下几个方面:1. 光源选择:选择适合老年人眼睛的柔和光源,避免刺眼和眩光的发生。可以选择LED灯具,因为它们具有节能、寿命长和可调光的特点。2. 光线布置:在不同区域设置不同的光线&…...
如何使用Cloudreve将个人电脑打造为私有云盘并实现远程访问
文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 云存储概念兴起后,现在市面上也已经有了很多公有云盘。但一段时间后…...
[SaaS] 淘宝AI淘淘秀
AIGC技术在淘淘秀场景的探索与实践关键词:图像类AI创新应用、用户轻松创作、内容分享、结合商家品牌。https://mp.weixin.qq.com/s/-3a3_nKeKGON-9-Prd7JKQ 1.生成模版 利用定制的prompt,生成一些比较好的素材图片案例。 最终的用的是通义万相。 2.仿…...
第二证券:机构密集调研消费电子、半导体产业链
据上海证券报记者核算,近一个月来,共有41家消费电子类公司和92家半导体公司(核算标准:申万职业2021,下同)发布出资者调研纪要。其间,有的公司款待了16个批次估计超200家安排,更有公司…...
app小程序定制的重点|软件定制开发|网站搭建
app小程序定制的重点|软件定制开发|网站搭建 App小程序定制开发是近年来快速发展的一项技术服务,随着移动互联网的普及和用户需求的不断升级,越来越多的企业和个人开始关注和需求定制化的小程序开发。那么,对于app小程序定制开发来说…...
11-28渗透
用nmap扫描靶机1进行主机发现 已知靶机1的主机在172.16.17.0/24下 扫描结果如下 根据扫描结果看开启的服务怀疑172.16.17.177是靶机1 浏览器访问172.16.17.177页面得到如下 我们知道织梦cms系统默认管理路径是dede,登陆管理后台可以通过地址172.16.17.177/dede/i…...
qt实现一个安卓测试小工具
qt实现一个安卓测试小工具 最终效果:目录结构源码gui.py 主要是按钮,文本控制代码main.py 主要是逻辑代码gui.spec 是打包使用的adb.ui 打包为exe 最终效果: 目录结构 上面2个是打包的生成的不用管 源码 gui.py 主要是按钮,文…...
驾驭未来,智能化管理——汽车ERP系统
在汽车行业竞争日益激烈的今天,如何提高生产效率、优化供应链管理,确保产品质量和客户满意度成为汽车制造企业亟需解决的难题。为解决这一问题,汽车企业资源计划(ERP)系统应运而生。本文将为您介绍汽车ERP系统…...
flutter开发实战-当前界面无操作60s返回主页实现
flutter开发实战-当前界面无操作60s返回主页实现 当前界面无操作60s返回主页实现,主要是通过Timer来控制,当监听界面是否有pointerDown时候,如果超过60s仍没有操作,则返回主页。 一、Listener Listener是用来用于调用回调以响应…...
绩效考核的基础及基本内容
人力资源是企业的第一资源,员工绩效水平决定着人力资源价值的实现程度,绩效是企业永远的重点,没有绩效,一切无从谈起。很多企业在实施考核时扩大了绩效考核的积极作用,并没有考虑企业对绩效考核负面效应的承载能力&…...
阿坤老师的彩带插花(蓝桥杯)
阿坤老师的彩带插花 问题描述 阿坤老师是个充满创意的手工艺教师,他最近在教学生们制作彩带插花。每束彩带插花由多段彩带组成,每段彩带有左端和右端,左端到右端的长度不一。阿坤老师发现,有些彩带被完全插在了其他彩带之内&…...
系列二十四、Spring设计模式之策略模式
一、前言 对于我们Java开发人员来说,Spring框架的重要性不言而喻,可以说Java领域之所以发展这么壮大,生态这么丰富,功能这么强大,是离不开Spring以及由其衍生出来的各种子模块的,正是由它们共同奠定了JavaE…...
Linux常用命令——basename命令
在线Linux命令查询工具 basename 打印目录或者文件的基本名称 补充说明 basename命令用于打印目录或者文件的基本名称。basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。 语法 basename(选项)(参数)选项 --help&…...
LeetCode17.电话号码的字母组合
写这题的时候没有啥DFS思路,感觉还是DFS没刷明白,还需要多提高 参考链接: 【还得用回溯算法!| LeetCode:17.电话号码的字母组合-哔哩哔哩】 https://b23.tv/oTuy71C class Solution {public List<String> lette…...
为Oracle链接服务器使用分布式事务
1 现象 在SQL Server中创建指向Oracle的链接服务器,SQL语句在事务中向链接服务器插入数据。返回链接服务器无法启动分布式事务的报错。 2 解决 在Windows平台下,SQL Server依赖分布式事务协调器(MSDTC)来使用分布式事务࿰…...
代洋集团,引领绿色能源新潮流
代洋集团,引领绿色能源新潮流,成功安装了先进的太阳能电池阵列。这一环保举措,不仅彰显了我们对可持续发展的执着追求,更为整个园区带来了绿色能源的革新。 这个高效的太阳能电池阵列,利用纯净的阳光转化为清洁电力&a…...
LuatOS-SOC接口文档(air780E)--rtos - RTOS底层操作库
rtos.receive(timeout) 接受并处理底层消息队列. 参数 传入值类型 解释 int 超时时长,通常是-1,永久等待 返回值 返回值类型 解释 msgid 如果是定时器消息,会返回定时器消息id及附加信息, 其他消息由底层决定,不向lua层进行任何保证. 例子 无 rtos.timer_start(id…...
一名技术Leader应该是创作者
今天看了一本书叫做《黑客与画家》。它里面提到一个很重要的概念就是黑客(优秀的程序员)是一名建筑师,而不是一名工程师。 传统的主管和互联网的Leader 这两者有什么区别呢?关键点在于建筑师是思考做什么,而工程师是…...
为啥学C语言绕不开指针?懂它封神,不懂直接劝退,真相太扎心
一、学C的人,一半栽在指针上,一半靠它拿高薪 无数程序员入门C语言时,都有过同一个崩溃瞬间:对着指针的*和&抓耳挠腮,明明看书上写的是“存储内存地址的变量”,可实操起来却频频报错,甚至直接…...
3步掌握RePKG工具:从Wallpaper Engine资源提取到项目重构的实战指南
3步掌握RePKG工具:从Wallpaper Engine资源提取到项目重构的实战指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经看着Wallpaper Engine中精美的动态壁纸&a…...
atopile生态系统探索:如何利用包管理器加速硬件开发
atopile生态系统探索:如何利用包管理器加速硬件开发 【免费下载链接】atopile Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️ …...
Open Interpreter多场景落地:浏览器操控与媒体处理实操手册
Open Interpreter多场景落地:浏览器操控与媒体处理实操手册 1. 开篇:为什么你需要Open Interpreter? 你是不是经常遇到这样的情况:想要批量处理一些文件,但不想写复杂的脚本;或者需要从网站抓取数据&…...
OpenClaw备份恢复指南:Phi-3-vision-128k技能配置迁移技巧
OpenClaw备份恢复指南:Phi-3-vision-128k技能配置迁移技巧 1. 为什么需要备份OpenClaw环境 上周我的主力开发机突然硬盘故障,不得不紧急更换设备。当我面对一台全新的MacBook Pro时,最头疼的不是重装开发环境,而是如何恢复那个精…...
探索信息获取新维度:突破信息茧房的智能工具实践指南
探索信息获取新维度:突破信息茧房的智能工具实践指南 你是否曾在海量信息中迷失方向?当打开浏览器面对无数标签页却找不到真正需要的内容时,当花费数小时筛选资料却发现质量参差不齐时,当重要信息被层层付费壁垒阻隔时——这种普遍…...
IEEE/ASME Transactions on Mechatronics | 院士团队让移动机器人在复杂环境中学会主动避障
论文信息 英文题目: Vector Field Augmented Reinforcement Learning for Adaptive Motion Planning of Mobile Robots 中文题目:面向移动机器人自适应运动规划的向量场增强强化学习 作者: Yang Lu, Weijia Yao, Cong Li, Yongqian Xia…...
Sketch Measure插件完全指南:如何用设计规范提升团队协作效率
Sketch Measure插件完全指南:如何用设计规范提升团队协作效率 【免费下载链接】sketch-measure Make it a fun to create spec for developers and teammates 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-measure Sketch Measure是一款专为设计师和…...
性价比高的水泥压力板哪家技术强
在建筑材料市场中,水泥压力板凭借其诸多优势,如防火、防潮、隔音等,成为众多建筑项目的理想选择。对于追求性价比的客户来说,选择一家技术实力强的水泥压力板品牌至关重要。兴达成就是这样一家在市场上具有较高声誉的品牌…...
StructBERT中文相似度模型效果展示:LCQMC与ChineseSTS精准匹配案例集
StructBERT中文相似度模型效果展示:LCQMC与ChineseSTS精准匹配案例集 1. 引言:当AI能读懂句子的“言外之意” 你有没有遇到过这样的场景?在搜索引擎里输入一个问题,结果返回的答案和你问的完全不是一回事。或者,你想…...
