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),而:? 用於列印每個變體的實例。


上一篇: Rust結構體方法語法 下一篇: 匹配運算符