Function core::mem::discriminant 1.21.0[−][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