第三课:枚举;

190 阅读1分钟

用于取值被限定在一定范围内的场景,不能超出范围;

使用场景:权限划分/等级划分,等有固定范围等内容;

  1. 普通枚举:会被编译进最后的代码中;

     语法:enum names { one, two , thr };
    
    // 枚举成员默认会被递增赋值为从0开始的数字;
    enum names { one, two , thr };
    
    names['one'] --> 0;
    names['two'] --> 1;
    
    name[0] ==> 'one';
    name[1] ==> 'two';
    
    // 也可以手动赋值;
    enum names { one = 1, two, thr };
    
    names['one'] --> 1;
    names[1] ==> 'two'; // 手动赋值的枚举项与后面的重复了,会被后面的枚举项覆盖;
    
    // 枚举两种类型:常数项/计算所得项;
    enum names { one, two, thr= 'thr'.length }; // thr为计算所得项;
    
    // 计算所得项后面不能再添加常数项;
    enum names { one, two, thr = 'thr'.length , four}; // 报错,但可以继续添加计算所得项;
    
  2. 常数枚举:编译时会被删除,且不能包含计算所得项;

     语法:const enum names { one, two, thr };
    
    const enum names { one, two, thr = 'thr'.length }; // 报错;
    
  3. 外部枚举:编译时会被删除,常出现在声明文件中;

     语法:declare enum names { one, two, thr };