Rust的列舉的變體可以持有值,並且每個變體持有的值的資料型別可以是不同的。
enum IpAddrKind {
V4(u8,u8, u8, u8),
V6(String)
}
let home = IpAddrKind::V4(127,0,0,1);
let loopback = IpAddrKind::V6(String::from("::1"));
可以為列舉實現方法,如下程式碼:
fn main(){
let m=Message::Write(String::from("hello"));
m.call();
}
enum Message {
Quit,
Move {x:i32,y: i32 },
Write(String),
ChangeColor(i32,i32,i32)
}
impl Message {
fn call(&self){
//...
}
}