×
Rust教程Rust简介Rust的特点Rust开发环境安装Rust第一个程序

控制语句

Rust if语句Rust if in a let语句Rust loop循环Rust for循环Rust while循环

Rust所有权

Rust所有权Rust引用和借用Rust切片

Rust结构体

Rust结构体Rust结构体更新语法Rust结构体方法语法

Rust枚举

Rust枚举匹配运算符Rust if let控制流程

Rust模块

Rust模块Rust文件系统Rust公开函数Rust use关键字引用模块

Rust集合

Rust向量Rust字符串

Rust错误处理

Rust错误处理Rust不可恢复的错误Rust可恢复的错误

Rust泛型与性状

Rust泛型Rust TraitRust生命周期

Rust智能指针

Rust智能指针Rust Box<T>Rust Deref traitRust Drop trait

Rust枚举


枚举是一种自定义数据类型,包含一些确定的值。 它在枚举名称之前使用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),而:? 用于打印每个变体的实例。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)