代码之家  ›  专栏  ›  技术社区  ›  Halona

有没有办法知道枚举类型中有多少个值?

  •  1
  • Halona  · 技术社区  · 7 年前

    我需要知道在我的验证环境中,枚举类型中有多少个值。例如。:

    type my_type: [a, b, c, d];
    

    我有一种方法可以在运行中检查 my_type ?

    谢谢你的帮助

    3 回复  |  直到 7 年前
        1
  •  4
  •   Tudor Timi    7 年前

    有一个 all_values(...) enum 文字:

    assert all_values(my_type).size() == 4;
    
        2
  •  1
  •   Yuri Tsoglin    7 年前

    set_of_values() set (而不是列表)所有值:

    set_of_values(my_type).uint_size()
    

    在某种程度上,使用 更好是因为 all_values() 创建一个新列表,该列表通常比一个集合占用更多内存。 uint_size() uint . 还有 size() 但它又回来了 int(bits: *) ,所以它足够好用了 uint_大小() MAX_UINT

        3
  •  1
  •   user3467290    7 年前

    另外-set_of_values()返回“set”,您可以查询最小/最大值的类型及其范围。

    例如:

     var x := set_of_values(my_type).uint_max();
    
     keep y ==  set_of_values(my_type).uint_max().as_a(my_type).as_a(my_type);
    
     print set_of_values(my_type).uint_min().as_a(my_type);
    
    推荐文章