枚舉是一種自定義數據類型,包含一些確定的值。 它在枚舉名稱之前使用enum
關鍵字定義。 它還包括方法。
枚舉的語法:
enum enum_name
{
variant1,
variant2,
.
.
}
在上面的語法中,enum_name
是枚舉的名稱,variant1
,variant2
,..
是與枚舉名稱相關的枚舉值。
例如:
enum Computer_language{
C,
C++,
Java,
}
在上面的例子中,computer_language
是枚舉名稱,C
,C++
,Java
是computer_language
的值。
枚舉值
下麵創建每個變數的實例,如下所示:
let c = Computer_language::C;
let cplus = Computer_language::C++;
let java = Computer_language::Java;
在上面的場景中,分別創建了包含值C
,C++
,Java
的三個實例,即c
,cplus
,java
。 枚舉的每個變體都在其識別字下命名,並使用雙冒號。 這很有用,因為Computer_language::C
,Computer_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結構體方法語法
下一篇:
匹配運算符