rust6枚举

该文展示了Rust编程中使用i8类型变量、Option枚举以及match和iflet语句进行条件判断和值匹配的示例代码,重点在于变量赋值及条件分支的优化写法。

fn main() { let x: i8 = 5; let y:i8 = Some(5).expect("Invalid number"); let sum = x + y; println!("{}", sum); }

fn main() { let v = Some(0u8); match v { Some(3) => println!("three"), _ => (), } //优化上面写法 if let Some(3) = v { println!("three"); } }

fn main() { let v = Some(0u8); match v { Some(3) => println!("three"), _ => println!("others"), } //优化上面写法 if let Some(3) = v { println!("three"); } else { println!("others"); } }

### 泛型枚举的介绍 在 Rust 里,泛型枚举允许开发者创建能容纳不同类型数据的枚举类型。借助泛型,枚举可以表示通用的数据结构,而无需预先指定具体的数据类型。这增强了代码的复用性与灵活性,让开发者能够编写出更具通用性的代码。 ### 泛型枚举的使用方法 定义泛型枚举时,要在枚举名称后面使用尖括号 `<>` 来指定泛型类型参数,之后在枚举的变体里使用这些泛型类型参数。在使用泛型枚举时,既可以使用具体类型来替代泛型类型参数,也可以让 Rust 编译器自动推断类型。 ### 泛型枚举的示例 以下是一个表示不同形状的泛型枚举示例: ```rust // 定义一个泛型枚举 enum Shape<T> { Circle(T), Rectangle(T, T), } fn main() { // 创建一个 Circle 变体,使用 f64 类型 let circle: Shape<f64> = Shape::Circle(5.0); // 创建一个 Rectangle 变体,使用 i32 类型 let rectangle = Shape::Rectangle(10, 20); match circle { Shape::Circle(radius) => println!("Circle with radius: {}", radius), Shape::Rectangle(_, _) => unreachable!(), } match rectangle { Shape::Circle(_) => unreachable!(), Shape::Rectangle(width, height) => println!("Rectangle with width: {} and height: {}", width, height), } } ``` 在这个示例中,`Shape` 是一个泛型枚举,它有两个变体:`Circle` `Rectangle`。`Circle` 变体包含一个泛型类型 `T` 的值,而 `Rectangle` 变体包含两个泛型类型 `T` 的值。在 `main` 函数里,创建了 `Shape` 枚举的两个实例:一个是 `Circle` 变体,使用 `f64` 类型;另一个是 `Rectangle` 变体,使用 `i32` 类型。最后,通过 `match` 表达式来处理不同的变体并输出相应的信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值