13_Rust中的枚举

本文详细介绍了Rust中的枚举(enums)及其优势。枚举允许定义一组可能的值,如Rust中的Option枚举用于表示值的存在或缺失,解决了空值带来的问题。文章讨论了枚举的声明、使用方式,以及如何通过if let进行模式匹配,强调了Rust枚举在提升代码安全性方面的作用。
摘要由CSDN通过智能技术生成

Rust中的枚举

枚举的基本概念

枚举enumerations),也被称作 enums

枚举允许你通过列举可能的 成员variants) 来定义一个类型。

首先,我们会定义并使用一个枚举来展示它是如何连同数据一起编码信息的。接下来,我们会探索一个特别有用的枚举,叫做 Option它代表一个值要么是某个值要么什么都不是

简单来讲,枚举就是一种类型,这种类型中可包含多个值,但是在实际去使用枚举的时候只能使用这么多个值中的其中一个。

比如,性别就可以是一种枚举类型,性别的值只能是男或者女(那种不伦不类的就算了,这里不谈)。当你去使用性别这种枚举的时候,要么是男,要么是女,不可能两个都取,也不可能一个都不取。

Rust中的枚举的基本用法:

  • 声明
enum 枚举名 {
   
    枚举值1,	//可指定类型也可不指定类型
    枚举值2,
    ...
    枚举值n,	
}

最后一个枚举值后面的逗号有没有都不影响,但是官网一般都会加上这个逗号,编译器中格式化代码之后也会自动加。

  • 使用
//未指定枚举值的类型
let 变量名 = 枚举名::枚举值名;
//指定枚举值的类型
let 变量名 = 枚举名::枚举值名(枚举值的实际值)

使用枚举的注意事项:在Rust中枚举不能直接通过if表达式来比较,一般使用match类模式匹配

例子:

enum Sex {
   	//定义了性别的枚举类型
    MAN,
    WOMAN,
}

struct Person {
   	//定义了人的结构体类型
    name: String,
    sex: Sex,
}

impl Person {
   	
    //实现人的info方法
    fn info(&self) {
   
        println!("name: {}", self.name);
        match self.sex {
   	//通过模式匹配,不能使用if表达式
            Sex::MAN => println!("sex: 男"),
            Sex::WOMAN => println!("sex: 女"),
        }
    }
}

fn main() {
   
    let jack = Person {
   
        name: String::from("Jack"),
        sex: Sex::MAN,
    };
    jack.info();
}

结果&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值