enum Message { Quit, Move { x: i32, y: i32 }, Write(String), ChangeColor(i32, i32, i32), } 枚举类的使用 let four = IpAddrKind::V4; let six = IpAddrKind::V6; 用match 控制流运算符来处理枚举有助于确保你考虑到了所有可能的情况。 Never (!) Rust 中有一个表示"永不返回"的特殊...
enum与struct混合使用 enum类型绑定数据类型 Option枚举 match控制流结构 枚举绑定值的情况 匹配Option枚举 占位符 if let 简洁控制流 总结 枚举的定义 创建枚举类型 enumNUM { one, two, } 我们创建了一个枚举类型,此枚举包含两个枚举变量,one和two 我们可以给变量赋予枚举值: fnmain() { leta=NUM::one; let...
解构嵌套的 struct 和 enum enumColor{Rgb(i32,i32,i32),Hsv(i32,i32,i32), }enumMessage{ Quit, Move {x:i32, y:i32},Write(String),ChangeColor(Color), }fnmain() {letmsg= Message::ChangeColor(Color::Hsv(0,160,255));matchmsg { Message::ChangeClolr(Color::Rgb(r, g, b)) => {prin...
整体enum的定义非常简单也符合我们的直观感受。 enum Gender { Unspecified = 0, Female = 1, Male = 2, } 但是访问的时候稍微麻烦一点儿,因为我们需要在运行期间判断具体的类型,所以match匹配语法就成了必需品。if let是匹配语法的一种缩写形式。整体的匹配语法还是很友好的。 #[derive(Debug)] enum Gender {...
1、结构体(Struct) 2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种数据类型,并提供相关代码示例。
使用枚举具有更多优势。目前,我们需要更多地考虑我们的IP地址类型,因此我们无法存储实际的IP地址数据; 我们只知道那是什么。可以参考struct来解决该问题: fn main() { enum IpAddrKind { V4, V6, } struct IpAddr { kind: IpAddrKind, address: String, ...
enum Option<T> { None, Some(T), } match 做流程控制 先看看 match 的用法: fn plus_one(x: Option<i32>) -> Option<i32> { match x { None => None, Some(i) => Some(i + 1), } } let five = Some(5); let six = plus_one(five); ...
在Rust中,match语句可以用于处理复杂数据类型,如结构体、枚举等。当处理复杂数据类型时,你需要根据数据结构的变体来选择相应的匹配分支。下面是一些示例: 结构体 struct Person { name: String, age: u32, } fn main() { let person = Person { name: String::from("Alice"), age: 30 }; match person...
enum Fruit { Apple, Banana, Orange, } fn main() { let fruit: Fruit = Fruit::Apple; match fruit { Fruit::Apple => println!("It's an apple!"), Fruit::Banana => println!("It's a banana!"), Fruit::Orange => println!("It's an orange!"), } } 四、其他数据类型 除了基本数据...
match表达式 摘要 枚举(enums)是Rust语言中的重要特性,允许定义一个类型并列举所有可能的成员。通过枚举可以编码复杂的信息结构。Option枚举用于表示可能存在或不存在的值,是处理空值的理想选择。使用match表达式和模式匹配可以根据不同的枚举值编写相应的代码逻辑,而if let结构则提供了一种简洁的方式处理枚举,简化代码结...