Rust的enum是一个比较特殊的构造。一个enum有两层意思:首先它可以具体的定义几种可列举的情况,比如“空/非空”,“正常/错误”等等;其次,每种情况可以用类似结构体的形式包含数据。一个例子,联系方式的定义: enum ContactInfo { Email(String), Wechat(QRCode), Mobile(u64), } let me = ContactInfo::Mobi...
//定义strut#[derive(Debug)]pubstructUser{pubusername:String,pubpassword:String,pubsign:u32,pubactive:bool,}fnmain(){//实例化struct,可以不按照声明的顺序,但是每个属性都需要赋值//该struct拥有username和password变量所有权letmutu1=User{sign:30,active:true,username:String::from("test"),password:String...
structUser{ username:String, email:String, sign_in_count:u64, active:bool, } letuser1=User{ username:String::from("someusername"), email:String::from("someone@example.com"), sign_in_count:1, active:true, }; 枚举(Enums) 枚举允许定义可能的几种数据类型中的一种。
另外还有元组结构体(tuple-like struct): struct Data(Vec<usize>); 以及单元结构体(unit-like struct): struct Data; 单元结构体不包含任何数据,因此 Rust 编译器甚至不需要为其分配内存。另外两种结构体依据其成员有相似的表示方式,并且非常类似于我们之前讲过的元组类型。让我们看看第一种具有命名字段的结构体在...
结构体类型(Struct Types):一种自定义的数据类型,可以包含多个不同类型的字段。结构体可以通过定义来指定其字段和属性。 枚举类型(Enum Types):表示一个可能取多个值的变量。在 Rust 中,枚举类型使用enum关键字定义,每个可能的取值都是一个不同的枚举成员。
}enumMessage{ Quit,//Quit变体不持有数据Move {x:i32,y:i32},//持有的数据是类型是结构体StructWrite(String),ChangeColor(i32,i32,i32)//持有的数据类型是元组Tuple}implMessage{fncall(&self){//...} } Option Enum 系统级的标准库内置声明的枚举 ...
#[derive(PartialEq)]enumgrade { A(u32,String), B(u32,String), C(u32,String) }//枚举的方法,定义上了struct方法类似,都是impl,&selfimpl grade { fn print(&self) {//这个tmd也太麻烦了吧match self { grade::A(a,b)=> println!("{}-{}",a,b), ...
struct Rectangle { width: u32, height: u32, } impl Rectangle { fn area(&self) -> u32 { self.width * self.height } } fn main() { let rect = Rectangle { width: 10, height: 20, }; println!("Area: {}", rect.area()); } 2、枚举(Enum) 枚举是一种自定义的数据类型,它可以表...
1、结构体(Struct) 2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种数据类型,并提供相关代码示例。
枚举enum关键字允许创建一个从数个不同取值中选其一的枚举类型(enumeration)。任何一个在 struct 中合法的取值在 enum 中也合法。 在日常生活中很常见。比如:1 年有 12 个月,1 周有 7 天。 枚举的定义 enum 枚举名称{ variant1, variant2, ... ...