枚举

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};

 

posted @ 2020-12-13 14:47  小翔momo  阅读(58)  评论(0编辑  收藏  举报