Chapter 08

列挙型

mebiusbox
mebiusbox
2023.03.16に更新
このチャプターの目次

📌 列挙型

列挙型 は取りうるさまざまな値を列挙しておき,そのうちのどれか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"));

列挙型は,構造体のようにメソッドを定義できますし,トレイトのインスタンスにもなれます.