橘子味的心
标题:Rust枚举

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

枚举的语法:

  1. enum enum_name
  2. {
  3. variant1,
  4. variant2,
  5. .
  6. .
  7. }
  8. Rust

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

例如:

  1. enum Computer_language{
  2. C,
  3. C++,
  4. Java,
  5. }
  6. Rust

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

枚举值

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

  1. let c = Computer_language::C;
  2. let cplus = Computer_language::C++;
  3. let java = Computer_language::Java;
  4. Rust

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

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

  1. fn language_type(language_name::Computer_language);
  2. Rust

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

  1. language_type(Computer_language::C++);
  2. Rust

通过一个例子来理解。

  1. enum Employee {
  2. Name(String),
  3. Id(i32),
  4. Profile(String),
  5. }
  6. fn main() {
  7.  
  8. let n = Employee::Name("Hema".to_string());
  9. let i = Employee::Id(2);
  10. let p = Employee::Profile("Computer Engineer".to_string());
  11. println!(" {:?} s {:?} b {:?}", n,i,p);
  12. }
  13. C

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

  1. Name("Hema") s Id(2) b Profile("Computer Engineer")
  2. Shell

在上面的示例中,Employee是一种自定义数据类型,它包含三个变体,如Name(String)Id(i32)Profile(String),而:? 用于打印每个变体的实例。