当前位置: 首页 > news >正文

鸿蒙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()可以添加一根分割线

该函数可以直接在组件内使用。
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

相关文章:

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

文章目录 一、基本数据类型的定义1、变量声明2、数字类型3、字符串类型4、布尔类型5、数组类型6、元组类型7、枚举类型8、联合类型&#xff08;少用&#xff09;9、未知Unkown类型10、未定义和空值类型 二、数据类型的使用1、组件内部声明变量不需要使用let关键字2、使用Divide…...

集成学习的两种常见策略:bagging VS. boosting

chatGPT回答&#xff0c;记在这里。 集成学习是一种通过组合多个弱学习器来构建一个更强大的学习器的方法。其中&#xff0c;bagging和boosting是两种常见的集成学习策略。 一、bagging & boosting 简介 Bagging&#xff08;自助聚集法&#xff09;&#xff1a; Bagging…...

居家适老化设计第三十四条---卫生间之照明

居家适老化卫生间照明设计需要考虑以下几个方面&#xff1a;1. 光源选择&#xff1a;选择适合老年人眼睛的柔和光源&#xff0c;避免刺眼和眩光的发生。可以选择LED灯具&#xff0c;因为它们具有节能、寿命长和可调光的特点。2. 光线布置&#xff1a;在不同区域设置不同的光线&…...

如何使用Cloudreve将个人电脑打造为私有云盘并实现远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 云存储概念兴起后&#xff0c;现在市面上也已经有了很多公有云盘。但一段时间后…...

[SaaS] 淘宝AI淘淘秀

AIGC技术在淘淘秀场景的探索与实践关键词&#xff1a;图像类AI创新应用、用户轻松创作、内容分享、结合商家品牌。https://mp.weixin.qq.com/s/-3a3_nKeKGON-9-Prd7JKQ 1.生成模版 利用定制的prompt&#xff0c;生成一些比较好的素材图片案例。 最终的用的是通义万相。 2.仿…...

第二证券:机构密集调研消费电子、半导体产业链

据上海证券报记者核算&#xff0c;近一个月来&#xff0c;共有41家消费电子类公司和92家半导体公司&#xff08;核算标准&#xff1a;申万职业2021&#xff0c;下同&#xff09;发布出资者调研纪要。其间&#xff0c;有的公司款待了16个批次估计超200家安排&#xff0c;更有公司…...

app小程序定制的重点|软件定制开发|网站搭建

app小程序定制的重点|软件定制开发|网站搭建 App小程序定制开发是近年来快速发展的一项技术服务&#xff0c;随着移动互联网的普及和用户需求的不断升级&#xff0c;越来越多的企业和个人开始关注和需求定制化的小程序开发。那么&#xff0c;对于app小程序定制开发来说&#xf…...

11-28渗透

用nmap扫描靶机1进行主机发现 已知靶机1的主机在172.16.17.0/24下 扫描结果如下 根据扫描结果看开启的服务怀疑172.16.17.177是靶机1 浏览器访问172.16.17.177页面得到如下 我们知道织梦cms系统默认管理路径是dede&#xff0c;登陆管理后台可以通过地址172.16.17.177/dede/i…...

qt实现一个安卓测试小工具

qt实现一个安卓测试小工具 最终效果&#xff1a;目录结构源码gui.py 主要是按钮&#xff0c;文本控制代码main.py 主要是逻辑代码gui.spec 是打包使用的adb.ui 打包为exe 最终效果&#xff1a; 目录结构 上面2个是打包的生成的不用管 源码 gui.py 主要是按钮&#xff0c;文…...

驾驭未来,智能化管理——汽车ERP系统

在汽车行业竞争日益激烈的今天&#xff0c;如何提高生产效率、优化供应链管理&#xff0c;确保产品质量和客户满意度成为汽车制造企业亟需解决的难题。为解决这一问题&#xff0c;汽车企业资源计划&#xff08;ERP&#xff09;系统应运而生。本文将为您介绍汽车ERP系统&#xf…...

flutter开发实战-当前界面无操作60s返回主页实现

flutter开发实战-当前界面无操作60s返回主页实现 当前界面无操作60s返回主页实现&#xff0c;主要是通过Timer来控制&#xff0c;当监听界面是否有pointerDown时候&#xff0c;如果超过60s仍没有操作&#xff0c;则返回主页。 一、Listener Listener是用来用于调用回调以响应…...

绩效考核的基础及基本内容

人力资源是企业的第一资源&#xff0c;员工绩效水平决定着人力资源价值的实现程度&#xff0c;绩效是企业永远的重点&#xff0c;没有绩效&#xff0c;一切无从谈起。很多企业在实施考核时扩大了绩效考核的积极作用&#xff0c;并没有考虑企业对绩效考核负面效应的承载能力&…...

阿坤老师的彩带插花(蓝桥杯)

阿坤老师的彩带插花 问题描述 阿坤老师是个充满创意的手工艺教师&#xff0c;他最近在教学生们制作彩带插花。每束彩带插花由多段彩带组成&#xff0c;每段彩带有左端和右端&#xff0c;左端到右端的长度不一。阿坤老师发现&#xff0c;有些彩带被完全插在了其他彩带之内&…...

系列二十四、Spring设计模式之策略模式

一、前言 对于我们Java开发人员来说&#xff0c;Spring框架的重要性不言而喻&#xff0c;可以说Java领域之所以发展这么壮大&#xff0c;生态这么丰富&#xff0c;功能这么强大&#xff0c;是离不开Spring以及由其衍生出来的各种子模块的&#xff0c;正是由它们共同奠定了JavaE…...

Linux常用命令——basename命令

在线Linux命令查询工具 basename 打印目录或者文件的基本名称 补充说明 basename命令用于打印目录或者文件的基本名称。basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。 语法 basename(选项)(参数)选项 --help&…...

LeetCode17.电话号码的字母组合

写这题的时候没有啥DFS思路&#xff0c;感觉还是DFS没刷明白&#xff0c;还需要多提高 参考链接&#xff1a; 【还得用回溯算法&#xff01;| LeetCode&#xff1a;17.电话号码的字母组合-哔哩哔哩】 https://b23.tv/oTuy71C class Solution {public List<String> lette…...

为Oracle链接服务器使用分布式事务

1 现象 在SQL Server中创建指向Oracle的链接服务器&#xff0c;SQL语句在事务中向链接服务器插入数据。返回链接服务器无法启动分布式事务的报错。 2 解决 在Windows平台下&#xff0c;SQL Server依赖分布式事务协调器&#xff08;MSDTC&#xff09;来使用分布式事务&#xff0…...

代洋集团,引领绿色能源新潮流

代洋集团&#xff0c;引领绿色能源新潮流&#xff0c;成功安装了先进的太阳能电池阵列。这一环保举措&#xff0c;不仅彰显了我们对可持续发展的执着追求&#xff0c;更为整个园区带来了绿色能源的革新。 这个高效的太阳能电池阵列&#xff0c;利用纯净的阳光转化为清洁电力&a…...

LuatOS-SOC接口文档(air780E)--rtos - RTOS底层操作库

rtos.receive(timeout) 接受并处理底层消息队列. 参数 传入值类型 解释 int 超时时长,通常是-1,永久等待 返回值 返回值类型 解释 msgid 如果是定时器消息,会返回定时器消息id及附加信息, 其他消息由底层决定,不向lua层进行任何保证. 例子 无 rtos.timer_start(id…...

一名技术Leader应该是创作者

今天看了一本书叫做《黑客与画家》。它里面提到一个很重要的概念就是黑客&#xff08;优秀的程序员&#xff09;是一名建筑师&#xff0c;而不是一名工程师。 传统的主管和互联网的Leader 这两者有什么区别呢&#xff1f;关键点在于建筑师是思考做什么&#xff0c;而工程师是…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...