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

鸿蒙开发之ArkTS常量与变量的命名规则

在鸿蒙开发(HarmonyOS)中使用 ArkTS(TypeScript 的超集)时,常量与变量的命名规则需遵循 TypeScript 的通用规范,同时结合鸿蒙开发的最佳实践。以下是详细的命名规则和示例:

1. 变量命名规则

变量用于存储可变的数据,命名应清晰表达其用途。

基本规则

  • 驼峰命名法(camelCase):首字母小写,后续单词首字母大写。
let userName: string = "Alice";
let isLoggedIn: boolean = true;
  • 避免缩写:除非是广泛认可的缩写(如 id、temp)
// 不推荐
let usrNm: string = "Bob";
// 推荐
let userName: string = "Bob";
  • 语义化:名称应直接反映用途。
// 不推荐
let a: number = 10;
// 推荐
let itemCount: number = 10;

类型标注

  • 显式声明类型(推荐):
let age: number = 25;
let message: string = "Hello";

特殊场景

  • 循环变量:常用 i、j、k(但建议更语义化)。
for (let i = 0; i < 10; i++) { ... }
// 或
for (let index = 0; index < 10; index++) { ... }

2. 常量命名规则

常量用于存储不可变的数据,命名应体现其不可变性。

基本规则

  • 全大写 + 下划线分隔(UPPER_SNAKE_CASE):
const MAX_SIZE: number = 100;
const API_URL: string = "https://example.com/api";
  • 不可重新赋值:使用 const 声明。
// 错误示例(常量不应重新赋值)
const PI = 3.14;
PI = 3.1415; // 报错

枚举常量

  • 使用 enum 或联合类型(推荐联合类型,更轻量):
// 使用 enum(传统方式)
enum Color { RED, GREEN, BLUE }
let currentColor: Color = Color.RED;// 使用联合类型(ArkTS 推荐)
type Color = "RED" | "GREEN" | "BLUE";
let currentColor: Color = "RED";

3. 鸿蒙开发中的特殊约定

资源引用常量

  • 引用资源文件(如字符串、图片)时,建议使用前缀:
// 字符串资源
const STR_APP_NAME: string = $r('app.string.app_name');// 图片资源
const IMG_LOGO: Resource = $r('app.media.logo');

UI 组件属性

  • 组件属性命名应简洁且语义化:
@Entry
@Component
struct MyComponent {// 变量命名@State title: string = "Welcome";@State isVisible: boolean = true;build() {Column() {Text(this.title) // 直接使用变量.visibility(this.isVisible ? Visibility.Visible : Visibility.Hidden)}}
}

4. 命名禁忌

  • 避免保留字:如 let、const、class 等。
  • 避免单字符:除临时变量(如循环中的 i)。
  • 避免匈牙利命名法:如 strName、iCount(ArkTS 不推荐)。
  • 避免中文或特殊字符:
// 不推荐
let 用户名: string = "Alice";
let $temp: number = 10;

示例代码

// 常量
const APP_VERSION: string = "1.0.0";
const MAX_RETRY_COUNT: number = 3;// 变量
let userInput: string = "";
let retryCount: number = 0;// 函数
function login(username: string, password: string): boolean {const IS_VALID_USER: boolean = checkCredentials(username, password);if (IS_VALID_USER) {userInput = "Login successful";return true;}retryCount++;return false;
}

总结

在这里插入图片描述

http://www.dtcms.com/a/275000.html

相关文章:

  • 面向对象编程
  • [面试] 手写题-选择排序
  • 持有对象-泛型和类型安全的容器
  • 深度学习中的归一化技术详解:BN、LN、IN、GN
  • Kubernetes 高级调度特性
  • C语言:位运算
  • Redis 哨兵机制
  • 多代理系统(multi-agent)框架深度解析:架构、特性与未来
  • 无代码自动化测试工具
  • STM32G473串口通信-USART/UART配置和清除串口寄存器状态的注意事项
  • 隆重介绍 Xget for Chrome:您的终极下载加速器
  • 开源界迎来重磅核弹!月之暗面开源了自家最新模型 K2
  • 从延迟测试误区谈起:SmartPlayer为何更注重真实可控的低延迟?
  • gitee 代码仓库面试实际操作题
  • Cadence Virtuoso中如何集成Calibre
  • Java进阶---并发编程
  • 打造未来制造核心力:虚拟调试的价值与落地思路
  • YOLO-DETR如何提升小目标的检测效果
  • 【数据结构与算法】数据结构初阶:详解顺序表和链表(三)——单链表(上)
  • OpenCV实现感知哈希(Perceptual Hash)算法的类cv::img_hash::PHash
  • 商城网站建设实务
  • Ragflow-plus本地部署和智能问答及报告编写应用测试
  • 标准化模型格式ONNX介绍:打通AI模型从训练到部署的环节
  • C语言易错点(二)
  • C++包管理工具:conan2常用命令详解
  • JVM-----【并发可达性分析】
  • Android 12系统源码_分屏模式(一)从最近任务触发分屏模式
  • 微信小程序核心知识点速览
  • OpenCV图像基本操作:读取、显示与保存
  • OpenLLMetry 助力 LLM 应用实现可观测性