2015-10-26 115 views
5

有可能写出这样的结构:如何获取枚举的整数值?

enum Number { 
    One = 1, 
    Two = 2, 
    Three = 3, 
    Four = 4, 
} 

,但目的是什么?我找不到任何方法来获取枚举变体的值。

回答

11

您可以通过铸造枚举变异为整型获得的价值:

enum Thing { 
    A = 1, 
    B = 2, 
} 

fn main() { 
    println!("{}", Thing::A as u8); 
    println!("{}", Thing::B as u8); 
} 
+3

如果你需要更多的,有https://crates.io/crates/bitflags – ArtemGr

+1

@ArtemGr大一点! Bitflags和整数枚举有一些实现重叠,但通常在概念上很不相同,因此很好地了解这两者。 – Shepmaster

+0

感谢您的回复=) – Gedweb