Function std::mem::discriminant 1.21.0 (const: unstable)[−][src]
pub fn discriminant<T>(v: &T) -> Discriminant<T>
Expand description
返回一个唯一标识 v
中的枚举变体的值。
如果 T
不是枚举,则调用此函数不会导致未定义的行为,但返回值是未指定的。
Stability
如果枚举定义改变,则枚举变体的判别式可能会改变。 某些变体的判别式在使用相同编译器的编译之间不会改变。
Examples
这可以用来比较携带数据的枚举,而忽略实际数据:
use std::mem;
enum Foo { A(&'static str), B(i32), C(i32) }
assert_eq!(mem::discriminant(&Foo::A("bar")), mem::discriminant(&Foo::A("baz")));
assert_eq!(mem::discriminant(&Foo::B(1)), mem::discriminant(&Foo::B(2)));
assert_ne!(mem::discriminant(&Foo::B(3)), mem::discriminant(&Foo::C(3)));
Run