Rust 是通过引入 Option 这个 enum 类型,来解决 Null 问题的。 我觉得 Option 的设计非常棒,配合上 match 匹配,比 Kotlin 的 nullable 类型加问号的写法,要严谨多了。 Option a particularly useful enum, calledOption, which expresses that a value can be either something or nothing. Option 的定义: enum ...
当然rust的match肯定不止于此,我们接着来看。 二、match配合变体enum解构 rust的变体enum可以包含不同数据类型,再加上match匹配可以轻松实现复杂的逻辑需求。 我们还是来看个例子,比如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 enumOperator{ Plus(i32,i32), Subtract(i32,i32), Multiply(i32...
Alaska,}enumCoin{Penny,Nickel,Dime,Quarter(UsState),}fnvalue_in_cents(coin:Coin)->u8{matchcoin...
enum与struct混合使用 enum类型绑定数据类型 Option枚举 match控制流结构 枚举绑定值的情况 匹配Option枚举 占位符 if let 简洁控制流 总结 枚举的定义 创建枚举类型 enumNUM { one, two, } 我们创建了一个枚举类型,此枚举包含两个枚举变量,one和two 我们可以给变量赋予枚举值: fnmain() { leta=NUM::one; let...
structMatcher<T>(T);impl<T:PartialEq>Matcher<T>{fnmatches(&self,other:&T)->bool{&self.0==other}} 3.5 全模式(Exhaustive Patterns) Rust编译器会检查match表达式是否覆盖了所有可能的情况: enumCoin{Penny,Nickel,Dime,Quarter,}fnvalue_in_cents(coin:Coin)->u8{matchcoin{Coin::Penny=>1,Coin::Ni...
structPoint{x:i32,y:i32,}enumShape{Circle{center:Point,radius:f32},Rectangle{top_left:Point,bottom_right:Point},} 模式匹配 在这个函数中,我们使用match表达式来计算并打印不同形状的面积。每个match分支处理一个特定的枚举变体,并访问其中的数据。
2、枚举(Enum) 枚举是一种自定义的数据类型,它可以表示多个可能的值。枚举使用enum关键字定义,并可以包含不同的变体(variant)。 以下是一个枚举的示例: 代码语言:javascript 复制 enum Fruit { Apple, Banana, Orange, } fn main() { let fruit: Fruit = Fruit::Apple; match fruit { Fruit::Apple => ...
具体而言,该文件中定义了以下几个重要的结构体(struct)和枚举(enum): ConstProp:此结构体负责实现常量传播的具体逻辑。它利用编译器内部的中间表示(MIR)来遍历函数和操作码,并根据情况进行常量折叠、值替换等优化操作。 ConstPropagator<'mir>:这是一个常量传播的处理器,负责处理每个函数的MIR并应用常量传播的转换。
enum Message { Move { x: i32, y: i32 }, Write(String), ChangeColor(i32, i32, i32), } 1. 2. 3. 4. 5. 现在,我们使用match表达式处理不同的Message变体: fn process_message(msg: Message) { match msg { Message::Move { x, y } => println!("Move to coordinates (x={}, y={})...
1、结构体(Struct) 2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种数据类型,并提供相关代码示例。