一、定义枚举
定义枚举的方法
enum Message {
Quit,
Move {x:i32,y:i32},
Write(String),
ChangeColor(i32,i32,i32),
}
impl Message {
fn call(&self) {
}
}
fn main() {
let q = Message::Quit;
let m = Message::Move{x:12,y:24};
let w = Message::Write(String::from("Hello"));
let c = Message::ChangeColor(0,255,255);
m.call()
}
二、Option枚举
fn main() {
let some_number = Some(5);
let some_string = Some("string test");
let absent_number : Option<i32> = None;
}
三、控制流与运算符 Match
enum Coin {
Penny,
Nickel,
Dime,
Quarter,
}
fn value_in_cents(coin : Coin) -> u8 {
match coin {
Coin::penny => {
println!("Penny");
1
},
Coin::Nickel =>5,
Coin::Dime =>10,
Coin::Quarter =>20,
}
}
fn main() {
}
匹配Option<T>
fn plus_one(x : Option<i32>) -> Option<i32> {
match x {
None => None,
Some(i) => Some(i+1)
}
}
fn main() {
let five = Some(5);
let six = plus_one(five);
let none = plus_one(None);
}
四、if let
效果一样