有没有办法提取枚举中的元素数量?
简单的例子(用虚构的number_of_elements方法):
enum FooBar { A = 0, B, C, };
println!("Number of items: {}", FooBar.number_of_elements());
// "Number of items: 3"
Run Code Online (Sandbox Code Playgroud)
在C中,我通常会......
enum FooBar { A = 0, B, C, };
#define FOOBAR_NUMBER_OF_ITEMS (C + 1)
Run Code Online (Sandbox Code Playgroud)
但是相当于Rust的Rust不起作用:
enum FooBar { A = 0, B, C, };
const FOOBAR_NUMBER_OF_ITEMS: usize = (C as usize) + 1;
// Raises an error:
// unimplemented constant expression: enum variants
Run Code Online (Sandbox Code Playgroud)
包括枚举中的最后一项是非常不方便的,因为如果不考虑所有成员,匹配的枚举将会出错.
enum FooBar { A = 0, B, C, FOOBAR_NUMBER_OF_ITEMS, };
Run Code Online (Sandbox Code Playgroud)
有没有办法将枚举中的项目数作为常量值?
注意:即使这与问题没有直接关系,我之所以想要这个功能,是因为我正在使用 …