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



所有评论(0)