RUST 0x05 Enum
RUST 0x05 Enum 1 定义一个Enum 如: enum IpAddrKind { V4, V6, } enum的值只能是它的变量中的一个。 Enum Values 可以像这样创建实例: let four = IpAddrKind::V4; let six = IpAddrKind::V6; enum里的变量是在其namespace下的,所以要用 :: 。这时 IpAddrKind::V4 和 IpAddrKind::V6 是同一种类型—— IpAddrKind ,所以可以像这样: fn route(ip_kind: IpAddrKind) { route(IpAddrKind::V4); route(IpAddrKind::V6); 可以这样将enum和struct组合使用: enum IpAddrKind { V4, V6, } struct IpAddr { kind: IpAddrKind, address: String, } let home = IpAddr { kind: IpAddrKind::V4, address: String::from("127.0.0.1"), }; let loopback = IpAddr { kind: IpAddrKind::V6, address: String::from("::1"), };