鸿蒙4.0开发笔记之ArkTS语法的基础数据类型[DevEco Studio开发](七)

news2024/11/28 23:42:12

文章目录

    • 一、基本数据类型的定义
      • 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()可以添加一根分割线

该函数可以直接在组件内使用。
2.2.1

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%')
  }
}

2.3.1

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

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

相关文章

docker镜像分层、仓库、容器数据卷与常用软件安装

一、镜像分层 1、镜像概念&#xff1a; 镜像是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;将应用程序和配置依赖打包好行成一个可交付的运行环境&#xff0c;这个打包好的运行环境就是image镜像文件。 2、镜像分层&#xff1a…

额,收到阿里云给的赔偿了!

众所周知&#xff0c;就在刚过去不久的11月12号&#xff0c;阿里云突发了一次大规模故障&#xff0c;影响甚广。 以至于连咱们这里评论区小伙伴学校的洗衣机都崩了&#xff08;手动doge&#xff09;。 这么关键的双11节点&#xff0c;这么多热门业务和产品&#xff0c;这么大规…

Python面试破解:return和yield的细腻差别

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是涛哥&#xff0c;今天为大家分享 Python面试破解&#xff1a;return和yield的细腻差别&#xff0c;全文3000字&#xff0c;阅读大约10钟。 在Python的函数编程中&#xff0c;return和yield是两个常用的关键词…

在Mysql中,什么是回表,什么是覆盖索引,索引下推?

一、什么是回表查询&#xff1f; 通俗的讲就是&#xff0c;如果索引的列在 select 所需获得的列中&#xff08;因为在 mysql 中索引是根据索引列的值进行排序的&#xff0c;所以索引节点中存在该列中的部分值&#xff09;或者根据一次索引查询就能获得记录就不需要回表&#x…

IELTS学习笔记_grammar_新东方

参考&#xff1a; 新东方 田静 语法 目录&#xff1a; 导学简单句… x.1 导学 学语法以应用为主。 基础为&#xff1a;单词&#xff0c;语法 进阶为&#xff1a;听说读写译&#xff0c;只考听说读写。 words -> chunks -> sentences, chunks&#xff08;语块的重要…

Linux MTR(My TraceRoute)command

Internet上有许多小型网络测试工具:Ping、Traceroute、Dig、Host等。 但是&#xff0c;这些工具的功能都比较单一。今天会给大家分享一个包含ping和traceroute功能的工具&#xff1a;MTR 文章目录 什么是MTR&#xff1f;MTR可以提供哪些功能Linux MTR可用选项Linux MTR用法推荐…

智能优化算法应用:基于鸡群算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鸡群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鸡群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鸡群算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

使用vue-admin-template时,需要注意的问题,包括一定要去除mock.js注释

在使用vue-admin-template等前端框架时&#xff0c;如果你没有打算用他们的mock数据&#xff0c;在生产环境下一定要注释mock引用的代码&#xff0c;虽然它没有被调用&#xff0c;但是如果你不注释&#xff0c;就会被打包进去。 找到main.js&#xff0c;看如下代码&#xff1a…

Node.js下载安装教程

一、下载安装包 1、百度网盘自提链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Bbw895MtUgjlfZylPHCCxw 提取码&#xff1a;x89v 2、进入官网下载 https://nodejs.org/zh-cn/download/ 选择对应版本&#xff0c;我这里选的windows64位版本 二、安装程序 1、…

seurat读取不同数据格式以创建Seurat单细胞对象

挖掘GEO公共单细胞数据集时&#xff0c;会遇到常见各种单细胞测序数据格式。现总结如下&#xff0c;方便自己日后调用&#xff0c;以创建Seurat对象 &#xff08;1&#xff09;barcodes.tsv.gz、features.tsv.gz、matrix.mtx.gz &#xff08;2&#xff09;表达矩阵 &#xff08…

60V 72V 输入 输出5V 2A 内置MOS 降压芯片 ESOP8封装

60V 72V 输入 输出5V 2A 内置MOS 降压芯片 SC9102 ESOP8封装

FL Studio水果软件21.1新版!新增Hyper Chorus插件及自动更新功能

我们很高兴地宣布在去年12月发布重大版本更新后&#xff0c;FL Studio在2023年8月正式更新到21.1版。本次更新虽然只是维护性质&#xff0c;但我们还是为大家带来了一些全新的功能&#xff0c;包括通过钢琴卷中的音阶捕捉和自定义音符工具&#xff0c;引入更快、更有创意的音符…

echarts修改tooltip默认的圆点图标为其他样式

业务需求&#xff0c;默认是圆点&#xff0c;需要把线的由圆点改为线 红色线是理论&#xff0c;点是历史理论&#xff0c;绿色线是实际&#xff0c; 点是历史实际&#xff0c;在series里的顺序也是这样排的。 打印出来的params里的marker就是圆点&#xff0c;改这段代码就可以了…

【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏3(附项目源码)

文章目录 本节最终效果前言近战武器控制近战武器生成升级增加武器伤害和数量查找离主角最近的敌人子弹预制体生成子弹发射子弹参考源码完结 本节最终效果 前言 本节紧跟着上一篇&#xff0c;主要实现武器功能。 近战武器 新增Bullet&#xff0c;子弹脚本 public class Bull…

医疗器械企业升级路:直连客户盘活存量,布局出海寻求增量

随着随着医疗各领域VBP&#xff08;带量采购&#xff09;的稳步推进以及医疗机构DRG/DIP&#xff08;按疾病诊断相关分组/病种分值支付&#xff09;的深化应用&#xff0c;降本增效和精细化管理已经成为医院管理者的头等大事。 这也在倒逼医疗器械厂商提升管理水平和营销效率。…

Springboot的excel导出

这里导出excel用到的是 阿里巴巴的easyexcel 1、首先导入依赖 <!--alibaba easyexcel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version> </dependency> 2、…

IWDG和WWDG HAL库+cubeMX

一.IWDG 1.原理 启用IWDG后&#xff0c;LSI时钟会自动开启 2.IWDG溢出时间计算 3.IWDG配置步骤 4.HAL库相关函数介绍 HAL_IWDG_Init //使能IWDG&#xff0c;设置预分频系数和重装载值等 HAL_IWDG_Refresh //把重装载寄存器的值重载到计数器中&#xff0c;喂狗typedef str…

解决苹果手机iphone手机强制重启

强制关机&#xff1a; 方法1.同时按住左侧的&#xff0c;- 键中的一个和右侧的电源键 方法2.点击桌面的悬浮键–设备–更多–重新启动

华住三季报:韧性增长超预期,夯实可持续发展底座

美股研究社获悉&#xff0c;2023年11月27日&#xff0c;华住集团2023年第三季度业绩发布会在线上举行。受华住三季度财报向好表现&#xff0c;多家证券公司给予买入评级。中信证券认为&#xff0c;本季度华住集团国内外RevPAR修复优于前期指引上限、净开店数优于预期。且华住集…

JAVA面向对象三大特征

1.面向对象的三大特征包括封装、继承和多态。 封装&#xff1a;封装是指将数据和操作数据的方法绑定起来&#xff0c;外界对数据的访问只能通过已定义的接口。这种特性有两层含义&#xff0c;一层是将属性和行为看成一个密不可分的整体&#xff0c;将这两者封装在一个对象中&a…