Rust 专题
您的位置:rust > Rust专题 > Rust枚举
Rust枚举
作者:--    发布时间:2019-11-20

枚举是一种自定义数据类型,包含一些确定的值。 它在枚举名称之前使用enum关键字定义。 它还包括方法。

枚举的语法:

enum enum_name  
{  
  variant1,  
  variant2,  
  .
  .
}

在上面的语法中,enum_name是枚举的名称,variant1variant2..是与枚举名称相关的枚举值。

例如:

enum computer_language{
  c,  
  c++,  
 java,
}

在上面的例子中,computer_language是枚举名称,cc++javacomputer_language的值。

枚举值

下面创建每个变量的实例,如下所示:

let c = computer_language::c;  
let cplus = computer_language::c++;  
let java = computer_language::java;

在上面的场景中,分别创建了包含值cc++java的三个实例,即ccplusjava。 枚举的每个变体都在其标识符下命名,并使用双冒号。 这很有用,因为computer_language::ccomputer_language::c++computer_language::java属于同一类型,即computer_language

还可以在特定实例上定义函数,定义采用computer_language类型实例的函数; 然后它看起来像:

fn language_type(language_name::computer_language);

任何变体都可以调用此函数:

language_type(computer_language::c++);

通过一个例子来理解。

enum employee {  
    name(string),  
    id(i32),  
    profile(string),  
}  
fn main() {  

    let n = employee::name("hema".to_string());  
    let i = employee::id(2);  
    let p = employee::profile("computer engineer".to_string());  
    println!(" {:?} s {:?} b {:?}", n,i,p);  
}

执行上面示例代码,得到以下结果 -

name("hema") s id(2) b profile("computer engineer")

在上面的示例中,employee是一种自定义数据类型,它包含三个变体,如name(string)id(i32)profile(string),而:? 用于打印每个变体的实例。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册