当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust discriminant用法及代码示例


本文简要介绍rust语言中 Function core::mem::discriminant 的用法。

用法

pub fn discriminant<T>(v: &T) -> Discriminant<T>

返回唯一标识 v 中的枚举变量的值。

如果T 不是枚举,调用此函数不会导致未定义的行为,但返回值未指定。

稳定

如果枚举定义发生变化,枚举变体的判别式可能会发生变化。某些变体的判别式在使用相同编译器的编译之间不会改变。

例子

这可用于比较携带数据的枚举,而忽略实际数据:

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)));

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Function core::mem::discriminant。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。