前言
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; }五、最佳实践
- 互斥状态用 enum:避免多 boolean 的非法组合
- 显式赋值:
SMALL = 1明确值 - 配合 switch:所有分支全覆盖
总结
enum 定义强类型枚举常量,适合猫咪等级、游戏状态等互斥分类。核心要点:互斥状态用 enum、 显式赋值可读性好、 switch 全覆盖。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- ArkTS 枚举文档
- 第 113 篇:map-cats
- 第 115 篇:record-config
- 第 116 篇:interface