Rust枚举

2026-06-21 03:51:43

枚举

  • 枚举可以通过列举某个类型所有可能的变体来定义这个类型

  • 定义:

    enum 枚举 {
        变体,
        变体,
    }
  • 创建变体:
    let 变体名 = 枚举::变体;
  • 结构体也可以作为变体,在《Rust 程序设计语言》中的例子是这样的:
    enum IpAddr {
        v4(u8, u8, u8, u8),
        v6(String),
    }

    let home = IpAddr::v4(127, 0, 0, 1);
    let loopback = IpAddr::v6(String::from("::1"));
    enum IpAddr {
        v4,
        v6,
    }

    struct IpAddr {
        kind: IpAddrKind,
        address: String,
    }

    let home = IpAddr {
        kind: IpAddrKind::v4,
        address: String::from("127.0.0.1"),
    }

Option枚举

    enum Option<T> {
        None,
        Some<T>,
    }
  • <T>是一个泛型类型的参数

  • Some()类似一个盒子

match枚举

  • 定义
   match 匹配值 {
       变体 => //,
       变体 => //,
       _ => //, // 如果匹配是无尽的或者不需要的,可以用`_`来匹配
   } 

if let控制流

  • if letmatch工作方式一样,是match的一个语法糖

  • 匹配当前某个模式而忽略其他模式

    if let 模式 = 匹配值 {
        //
    } else {
        // 可以在if let中包含一个else处理不匹配的情况
    }

← 返回文章列表