HarmonyOS鸿蒙应用开发之ArkTS基本语法
ArkTS(Ark TypeScript)是一种基于TypeScript的扩展语言,专为鸿蒙应用开发设计。它在保持TypeScript基本语法风格的基础上,对TypeScript的动态类型特性施加了更严格的约束,并引入了静态类型,以减少运行时开销,提高执行效率。以下是对ArkTS基本语法的简介,并附带一个简单的demo。
ArkTS基本语法简介
-
变量和数据类型
- ArkTS支持多种数据类型,包括数字(number)、字符串(string)、布尔(boolean)、数组(Array)、对象(object)、空(void)、null、undefined等。
- 变量声明需要指定变量名和数据类型,例如:
let num: number = 10;、let str: string = "Hello, ArkTS!";、let bool: boolean = true;。 - ArkTS支持自动类型推断,即如果变量在声明时初始化了,则可以省略类型注解。
-
运算符和表达式
- ArkTS支持多种运算符,包括算术运算符(+、-、*、/、%)、比较运算符(==、!=、<、>、<=、>=)、逻辑运算符(&&、||、!)等。
- 表达式由运算符和操作数组成,例如:
let sum = 1 + 2;、let isTrue = 1 > 2;、let result = (1 > 2) && (2 > 1);。
-
控制流语句
- ArkTS提供了if语句、switch语句、for循环、while循环等控制流语句,用于控制程序的执行流程。
- 例如,使用if语句:
if (1 > 2) { console.log("1 大于 2"); } else { console.log("1 小于 2"); }。
-
函数
- ArkTS中的函数用于封装代码块,可以指定函数的返回类型,例如:
function sayHello(): void { console.log("Hello, ArkTS!"); }。
- ArkTS中的函数用于封装代码块,可以指定函数的返回类型,例如:
-
特殊类型
- ArkTS还提供了枚举(enum)类型、联合(union)类型等高级特性,用于表示一组预定义的值或变量可能具有的多种类型。
ArkTS Demo
以下是一个简单的ArkTS demo,演示了如何在ArkTS中声明变量、使用运算符和控制流语句:
// 声明变量
let num: number = 10;
let str: string = "Hello, ArkTS!";
let bool: boolean = true;// 运算符使用
let sum: number = num + 5; // 加法运算
let isGreaterThanTen: boolean = num > 10; // 比较运算// 控制流语句
if (isGreaterThanTen) {console.log(str + " 并且数字大于10");
} else {console.log(str + " 并且数字不大于10");
}// 循环语句
for (let i: number = 0; i < 5; i++) {console.log(i);
}// 函数定义
function greet(name: string): void {console.log("Hello, " + name + "!");
}// 调用函数
greet("ArkTS");
在这个demo中,我们首先声明了几个变量,包括数字、字符串和布尔类型的变量。然后,我们展示了如何使用运算符和控制流语句来处理这些变量。最后,我们定义了一个简单的函数greet,它接受一个字符串参数并打印问候语,然后调用了这个函数。
请注意,由于ArkTS是鸿蒙应用开发框架中使用的特定语言扩展,上述demo中的console.log语句在实际鸿蒙应用开发中可能不会被直接使用,而是会替换为鸿蒙提供的日志打印函数或其他UI显示方式。此外,鸿蒙应用开发通常还会涉及到组件的使用、页面布局、事件处理等内容,这些在上面的demo中没有展示。
相关文章:
HarmonyOS鸿蒙应用开发之ArkTS基本语法
ArkTS(Ark TypeScript)是一种基于TypeScript的扩展语言,专为鸿蒙应用开发设计。它在保持TypeScript基本语法风格的基础上,对TypeScript的动态类型特性施加了更严格的约束,并引入了静态类型,以减少运行时开销…...
Web开发-CSS篇-上
CSS的发展历史 CSS(层叠样式表)最初由万维网联盟(W3C)于1996年发布。CSS1是最早的版本,它为网页设计提供了基本的样式功能,如字体、颜色和间距。随着互联网的发展,CSS也不断演进: C…...
在mac上通过 MySQL 安装包安装 MySQL 之后,终端执行 mysql 命令报错 command not found: mysql
在 mac 上通过 MySQL 安装包安装 MySQL 之后,如果在终端中运行 mysql 命令时遇到 command not found: mysql 错误,通常是因为 MySQL 的二进制文件没有被添加到系统的 PATH 环境变量中。 解决方法:手动添加 MySQL 到 PATH 环境变量 1.找到 M…...
Unity入门4——常用接口
C#中常用类和接口 DateTime:表示某个时刻 DateTime.Now:拿到系统当前时间DtaTime.TimeOfDay:获取此实例当天的时间 Quaternion:用来旋转,采用四元数,由w(实部)和x,y,z(虚…...
职业教育云计算实验实训室建设应用案例
云计算作为信息技术领域的一次革命,正在深刻改变着我们的工作和生活方式。随着企业对云计算技术的依赖日益加深,对具备云计算技能的专业人才的需求也日益迫切。职业院校面临着培养符合行业标准的云计算人才的挑战。唯众凭借其在教育技术领域的专业经验&a…...
MySQL-MHA高可用配置及故障切换
目录 案例搭建 1:所有服务器关闭防火墙 2:设置hosts文件 3:安装 MySQL 数据库 4:修改参数 5:安装 MHA 软件 6:配置无密码认证 7:配置 MHA 8:模拟 master 故障 MHA(MasterHi…...
Sentinel 滑动时间窗口源码分析
前言: Sentinel 的一个重要功能就是限流,对于限流来说有多种的限流算法,比如滑动时间窗口算法、漏桶算法、令牌桶算法等,Sentinel 对这几种算法都有具体的实现,如果我们对某一个资源设置了一个流控规则,并…...
猎码安卓APP开发IDE,amix STUDIO中文java,HTML5开发工具
【无爱也能发电】Xili 2024/8/2 10:41:20 猎码安卓APP开发IDE,amix java开发工具 我研发这些只有一小部分理由是为了赚钱,更多是想成就牛逼的技术产品。 目前的产品就够我赚钱的,我持续更新就好了,没必要继续研究。 IDE不赚钱,谁…...
【Deep-ML系列】Linear Regression Using Gradient Descent(手写梯度下降)
题目链接:Deep-ML 这道题主要是要考虑矩阵乘法的维度,保证维度正确,就可以获得最终的theata import numpy as np def linear_regression_gradient_descent(X: np.ndarray, y: np.ndarray, alpha: float, iterations: int) -> np.ndarray:…...
NVIDIA A100 和 H100 硬件架构学习
目前位置NV各种架构代号: NVIDIA GPU 有多个代号和架构,这些架构对应不同的世代和硬件特性。以下是 NVIDIA 主要 GPU 架构及其计算能力(Compute Capability)代号的简要概述: Tesla 架构 G80、GT200 Compute Capabi…...
企业研发设计协同解决方案
新迪三维设计,20年深耕三维CAD 全球工业软件研发不可小觑的中国力量 2003-2014 年 新迪数字先后成为达 索SolidWorks、 ANSYS Spaceclaim、MSC等三维CAD/CAE 软件厂商的中国研发中心,深度参与国际 一流工业软件的研发过程,积累了丰富的 技术经…...
iOS 18(macOS 15)Vision 中新增的任意图片智能评分功能试玩
概述 在 WWDC 24 中库克“大厨”除了为 iOS 18 等平台重磅新增了 Apple Intelligence 以外,苹果也利用愈发成熟的机器学习引擎扩展了诸多内置框架,其中就包括 Vision。 想用本机人工智能自动为我们心仪的图片打一个“观赏分”吗?“如意如意&…...
如何实现若干子任务一损俱损--浅谈errgroup
errgroup 是 Go 语言官方扩展库 x/sync 中的一个包,它提供了一种方式来并行运行多个 goroutine,并在所有 goroutine 都完成时返回第一个发生的错误(如果有的话)。这对于需要并行处理多个任务并等待它们全部完成,同时需…...
并查集的基础题
## 洛谷p1196 绿 35m 点到祖先的距离 代码: #include<bits/stdc.h> using namespace std; const int N3e510; int f[N],dist[N],num[N];//num计算祖先有多少儿子 ,dist计算距离祖先有几个 int zx(int x){ if(f[x]x)return x;//x没爸爸 e…...
[论文翻译] LTAChecker:利用注意力时态网络基于 Dalvik 操作码序列的轻量级安卓恶意软件检测
LTAChecker: Lightweight Android Malware Detection Based on Dalvik Opcode Sequences using Attention Temporal Networks 摘要: Android 应用程序已成为黑客攻击的主要目标。安卓恶意软件检测是一项关键技术,对保障网络安全和阻止异常情况至关重要。…...
HTTPS链接建立的过程
HTTPS(HyperText Transfer Protocol Secure)建立链接的过程主要是通过TLS(Transport Layer Security)协议来实现的。HTTPS的链接建立过程可以分为以下几个步骤: 1. **客户端发起请求** - 客户端向服务器发送一个请求&…...
文档控件DevExpress Office File API v24.1 - 支持基于Unix系统的打印
DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…...
IP地址封装类(InetAddress类)
文章目录 前言一、IP地址是什么?二、IP地址封装类 1.常用方法2.实操展示总结 前言 当我们想要获取到通信对方的IP地址、主机地址等信息时,我们可以使用InetAddress类。InetAddress类在java的net包中。 一、IP地址是什么? IP地址 (Internet Pr…...
数据库设计规范化
在数据库设计中,尤其是在关系型数据库管理系统中,规范化(Normalization)是一种通过减少数据冗余和依赖关系来优化数据库表结构的过程。规范化可以确保数据的完整性和减少数据更新时的问题。规范化的过程通常遵循一系列标准或范式&…...
预约咨询小程序搭建教程,源码获取,从0到1完成开发并部署上线
目录 一、明确需求与规划功能 二、选择开发工具与模板 三、编辑小程序内容 四、发布与运营 五、部分代码展示 制作一个预约咨询小程序,主要可以分为以下几个步骤: 一、明确需求与规划功能 明确需求: 1.确定小程序的服务对象…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...
