文章配图:enum 枚举类型定义

页面预览

前言

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 常量

特性 enum const 常量
类型安全 ✅ 编译检查 ❌ 任意赋值
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 全覆盖

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


相关资源:

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐