當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。