このチャプターの目次
📌 列挙型
列挙型 は取りうるさまざまな値を列挙しておき,そのうちのどれか1つだけ値を取るデータ型です.列挙した値のことを 列挙子 (Variant)と呼びます.構造体がフィールドの集合に対して AND
の関係であると考えれば,列挙型は OR
の関係にあると言えます.列挙型は enum
を使って定義し,列挙子はパス(::
)で指定します.
enum IpAddrKind {
V4,
V6,
}
let four = IpAddrKind::V4;
let six = IpAddrKind::V6;
列挙子ごとに型を指定できます.
enum IpAddr {
V4(u8, u8, u8, u8),
V6(String),
}
let home = IpAddr::V4(127, 0, 0, 1);
let loopback = IpAddr::V6(String::from("::1"));
列挙型は,構造体のようにメソッドを定義できますし,トレイトのインスタンスにもなれます.