Rust语言——枚举与模式匹配

本文介绍了Rust编程语言中的枚举(enum)用法,包括如何定义枚举、为枚举添加方法以及Option枚举的应用。枚举允许我们定义一组可能的值,如IP地址的v4、v6和v8结构体。Option枚举在Rust中用于处理可能缺失的值,提供了Some和None两种情况。通过match和if let语句,我们可以优雅地处理这些枚举值。
摘要由CSDN通过智能技术生成
  • 定义枚举

枚举允许我们列举所有可能的值来定义一个类型

关键字enum

enum IpAdd{//枚举的变体可以是任意类型的甚至可以是结构体struct
    v4(u8, u8, u8, u8),
    v6(String),
    v8{one:u32, two:u32},//匿名结构体
}
fn main(){
    let four = IpAdd::v4(127, 0, 0, 1);//两个IpAdd的实例
    let six = IpAdd::v6(String::from("::1"));
    let eight = IpAdd::v8{one:1, two:2};
    route(four);
    route(six);
}
fn route(ip_kind:IpAdd){

}

为枚举定义方法

impl IpAdd{//为枚举类型定义方法
    fn call(&self){
        
    }
}
//调用枚举方法
let four = IpAdd::v4(127, 0, 0, 1);//必须在实例中调用
four.call();
  • Option枚举

Rust中没有null,但null的概念是存在的

Option<T>, T为数据类型,存在于标准库中 有Some和None两个变体,两个变体可以直接使用

fn main(){
    let some_number = Some(5);
    let some_string = Some("A String");

    let absent_number:Option<i32> = None;
}
  • match

 match 枚举实例{

        枚举类型::变体=>*,

}

enum Coin{
    Penny,
    Nickel,
    Dime,
}
fn main(){
    let coin = Coin::Nickel;
    println!("{}", m(&coin));//2
}
fn m(coin:&Coin)->u32{
    match coin{
        Coin::Penny=>1,
        Coin::Nickel=>2,
        Coin::Dime=>3,
    }
}

match结构中必须要穷举所有的模式

"_"可以忽略不想匹配的模式

  • if let

处理只关心一种匹配而忽略其他匹配的情况

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值