枚举
enum Lx{'hello', 'nice', 'good'}; cc.log(Lx['hello'] == 0) cc.log(Lx['nice'] == 1) cc.log(Lx['good'] == 2) cc.log(Lx[0])
上面是枚举基本用法
//手动赋值枚举 enum Lx{bj = 5, cd = 4, sz}; cc.log(Lx['bj']) //5 cc.log(Lx['cd']) //4 cc.log(Lx['sz']) //5 未赋值的枚举会接着上一个枚举递增,会出现bj和sz都是5的情况,所以手动赋值要多注意不要出现覆盖情况
enum Color {Red, Green, Blue = "blue".length}; //枚举计算所得项 enum Color2 {Red = "red".length, Green, Blue}; //如果紧接在计算所得项后面的是未手动赋值的项,那么它就会因为无法获得初始值而报错
const enum Directions {
Up,
Down,
Left,
Right
}
let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];
//常数枚举与普通枚举的区别是,它会在编译阶段被删除,并且不能包含计算成员。
//上例的编译结果是:
//var directions = [0 /* Up */, 1 /* Down */, 2 /* Left */, 3 /* Right */];
//假如包含了计算成员,则会在编译阶段报错:
const enum Color {Red, Green, Blue = "blue".length};