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

【ArkTS】基础语法

一、ArkTS 语言简介

  • ArkTS 是一种设计用于构建高性能应用的编程语言。它在继承 TypeScript 语法的基础上进行了优化,以提供更高的性能和开发效率。
  • 许多编程语言在设计之初未考虑移动设备,导致应用运行缓慢、低效且功耗大。随着移动设备在日常生活中越来越普遍,针对移动环境的编程语言优化需求日益增加。ArkTS 专为解决这些问题而设计,聚焦提高运行效率。
  • TypeScript 是在 JavaScript 基础上通过添加类型定义扩展而来的,ArkTS 则是 TypeScript 的进一步扩展。TypeScript 提供了一种更结构化的 JavaScript 编码方法,深受开发者喜爱。ArkTS 保持了 TypeScript 的大部分语法,旨在为现有的 TypeScript 开发者提供高度兼容的体验,帮助移动开发者快速上手。
  • ArkTS 的一大特性是它专注于低运行时开销。ArkTS 对 TypeScript 的动态类型特性施加了更严格的限制,以减少运行时开销,提高执行效率。通过取消动态类型特性,ArkTS 代码能更有效地被运行前编译和优化,从而实现更快的应用启动和更低的功耗。
  • ArkTS 语言设计中考虑了与 TypeScript 和 JavaScript 的互通性。许多移动应用开发者希望重用 TypeScript 和 JavaScript 代码及库,因此 ArkTS 提供与 TypeScript 和 JavaScript 的无缝互通,使开发者可以轻松集成 TypeScript 和 JavaScript 代码到应用中,充分利用现有代码和库进行 ArkTS 开发。

二、基本语法

1、变量和常量声明

  • 变量声明:使用关键字 let声明的变量可以在程序执行期间具有不同的值。
  • 常量声明:使用关键字 const声明的常量为只读类型,只能被赋值一次。对常量重新赋值会造成编译时错误。
  • 自动类型推断:如果变量或常量的声明包含初始值,开发者无需显式指定类型,因为ArkTS规范已列举了所有允许自动推断类型的场景。
lethi:string='hello';consthello:string='hello';lethi2='hello, world';

2、基本类型和引用类型

  • 基本数据类型包括 number、string 等简单类型,它们可以准确地表示单一的数据类型。对基本类型的存储和访问都是直接的,比较时直接比较其值。
  • 引用类型包括对象、数组和函数等复杂数据结构。这些类型通过引用访问数据,对象和数组可以包含多个值或键值对,函数则可以封装可执行的代码逻辑。引用类型在内存中通过指针访问数据,修改引用会影响原始数据。

(1)number 类型

  • ArkTS 提供 number 类型,任何整数和浮点数都可以被赋给此类型的变量。
  • 数字字面量包括整数字面量和十进制浮点数字面量。
  • 整数字面量包括以下类别:
    • 十进制整数,由数字序列组成。例如:0、117、-345。
    • 十六进制整数,以 0x(或 0X)开头,包含数字(0-9)和字母 a-f 或 A-F。例如:0x1123、0x00111、-0xF1A7。
    • 八进制整数,以 0o(或0O)开头,只能包含数字(0-7)。例如:0o777。
    • 二进制整数,以 0b(或0B)开头,只能包含数字 0 和 1。例如:0b11、0b0011、-0b11。
  • 浮点数字面量包括以下部分:
    • 十进制整数,可为有符号数(前缀为 “+” 或 “-”)。
    • 小数点(“.”)。
    • 小数部分(由十进制数字字符串表示)。
    • 指数部分,以 “e” 或 “E” 开头,后跟有符号(前缀为 “+” 或 “-” )或无符号整数。
letn1=3.14;letn2=3.141592;letn3=0.5;letn4=1e2;functionfactorial(n:number):number{...}
  • number 类型在表示大整数(即超过-9007199254740991 ~ 9007199254740991)时会造成精度丢失。在开发时可以按需使用 bigint 类型来确保精度:
letbigInt:bigint=999999999999999999999999999999999999999999999999999999999999n;console.info('bigInt:'+bigInt.toString());

(2)boolean 类型

  • boolean 类型由 true 和 false 两个逻辑值组成。
  • 通常在条件语句中使用 boolean 类型的变量。
letisDone:boolean=false;if(isDone){...}

(3)string 类型

  • string 类型代表字符序列,可以使用转义字符来表示字符。
  • 字符串字面量由单引号(')或双引号(")之间括起来的零个或多个字符组成。
  • 字符串字面量还有一特殊形式,是用反向单引号(`)括起来的模板字面量。
lets1='Hello, world!\n';lets2='this is a string';leta='Success';lets3=`The result is${a}`;

(4)void 类型

  • void类型用于指定函数没有返回值。
  • 此类型只有一个值,同样是 void。由于 void 是引用类型,因此它可以用于泛型类型参数。
classClass<T>{//...}letinstance:Class<void>;

(5)Object 类型

  • Object(首字母大写) 类型是所有引用类型的基类型。任何值,包括基本类型的值,都可以直接被赋给Object类型的变量(基本类型值会被自动装箱)。
  • object(首字母小写)类型用于表示除基本类型外的类型。
leto1:Object='Alice';leto2:Object=['a','b'];leto3:Object=1;leto4:object=[1,2,3];

(6)array 类型

  • array 类型,即数组,是由可赋值给数组声明中指定的元素类型的数据组成的对象。
  • 数组可由数组复合字面量赋值。数组复合字面量是用方括号括起来的零个或多个表达式列表,每个表达式为数组中的一个元素。数组的长度由数组中元素的个数确定。数组中第一个元素的索引为 0。
letnames:string[]=['Alice','Bob','Carol'];

(7)enum 类型

  • enum 类型,即枚举类型,是预先定义的一组命名值的值类型,其中命名值又称为枚举
http://www.jsqmd.com/news/564691/

相关文章:

  • Keil中“function definition is not allowed here”错误的5种常见场景及解决方案
  • 大气层开源固件完全指南:从概念到实践的系统定制之旅
  • 手把手教你为OpenBMC (AST2600平台) 正确配置PCA9545 I2C Switch的DTS节点
  • 拒绝在AI时代被遗忘:深度解析XOOER品牌能见度评分与Schema优化 - 资讯焦点
  • 2026年天津太阳能光伏车棚品牌制造商排名,看看哪家好用 - 工业品牌热点
  • AcFunDown:解决A站视频离线管理的三大核心痛点
  • 微信小程序Flex布局核心技巧:容器居中与子元素左对齐详解
  • Windows右键菜单效率革命:ContextMenuManager极简操作与深度定制指南
  • 告别软件盗版烦恼:用YT88加密狗5分钟搞定C#/Java/Python源代码加密(附完整开发包下载)
  • Python3.11镜像实战:手把手教你安装PyTorch/TensorFlow,小白也能搞定
  • R60ABD1毫米波雷达在智慧养老与健康监测中的实战应用:从睡眠分析到跌倒预警
  • 短链系统设计总结
  • Windows Server 2008服务器配置实战:从Web到FTP的完整搭建指南
  • js之模块系统
  • AI专著撰写大突破:优质工具推荐,让你的专著脱颖而出
  • MyBatis批量更新避坑指南:从`<foreach>`拼接SQL到`allowMultiQueries`配置的完整流程
  • CosyVoice3问题解决:常见部署与生成问题,一键排查指南
  • 灵活就业新趋势:专专职业社交加技能变现,正在重构年轻人的收入结构 - 资讯焦点
  • NaViL-9B镜像优势:内置模型目录直读,节省31GB权重下载与解压时间
  • Unity Profiler远程调试移动端全攻略:从Wi-Fi连接到真机性能瓶颈定位
  • DeepSeek-OCR保姆级教程:A10/4090显卡环境配置与Flash Attention 2优化
  • AI论文生成工具有哪些?9款一键生成论文的软件,让学术论文创作如鱼得水! - 掌桥科研-AI论文写作
  • FireRedASR Pro在微信小程序开发中的应用:实时语音输入与转写
  • 保姆级教程:在Ubuntu 20.04上搞定海康工业相机ROS驱动(含OpenCV 3.2编译避坑指南)
  • 楼宇资产管理(上篇):数据驱动高效运营
  • RAG实战:用LangChain4j构建企业级知识库问答系统
  • Qwen-Image-Lightning场景实战:如何用一句话生成电影质感图片
  • 三招搞定图像去雾——用MATLAB把雾霾P掉
  • Vibe Coding ---- 2026年3月 很火的词
  • 打字不如说话,说话不如截图——AI 代码助手的多模态输入实践