HarmonyOS应用开发实战:猫猫大作战-enum 枚举类型定义
2026/7/29 13:13:58 网站建设 项目流程

前言

enum枚举是 ArkTS 中定义一组命名常量的方式。在「猫猫大作战」中,枚举用于猫咪等级游戏状态等互斥状态的表示。

一、枚举定义

export enum CatLevel { SMALL = 1, // 小猫 MEDIUM = 2, // 中猫 LARGE = 3, // 大猫 XLARGE = 4, // 特大猫 SUPER = 5, // 超级猫 LEGENDARY = 6, // 传奇猫 } export enum GameState { IDLE, // 0 主菜单 PLAYING, // 1 游戏中 PAUSED, // 2 暂停 GAME_OVER, // 3 游戏结束 }

二、枚举使用

// 猫咪等级 const level: CatLevel = CatLevel.SMALL; console.info(level); // 1 // 等级比较 if (cat.level === CatLevel.SUPER) { console.info('这是一只超级猫!'); } // 等级递进 const nextLevel = (cat.level + 1) as CatLevel; if (nextLevel <= CatLevel.LEGENDARY) { // 合并升级 }

三、枚举 vs 常量

特性enumconst 常量
类型安全✅ 编译检查❌ 任意赋值
IDE 提示✅ 自动补全✅ 可提示
值范围限定集合无限制
推荐场景状态机、等级配置参数

四、游戏状态机

// 使用枚举做状态流转 switch (this.gameState) { case GameState.IDLE: // 显示主菜单 break; case GameState.PLAYING: // 游戏逻辑 break; case GameState.PAUSED: // 暂停遮罩 break; case GameState.GAME_OVER: // 结算界面 break; }

五、最佳实践

  1. 互斥状态用 enum:避免多 boolean 的非法组合
  2. 显式赋值SMALL = 1明确值
  3. 配合 switch:所有分支全覆盖

总结

enum 定义强类型枚举常量,适合猫咪等级、游戏状态等互斥分类。核心要点:互斥状态用 enum、 显式赋值可读性好、 switch 全覆盖

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

  • ArkTS 枚举文档
  • 第 113 篇:map-cats
  • 第 115 篇:record-config
  • 第 116 篇:interface

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询