Rust 编程中的结构体
Rust中的结构是用户定义的数据类型。它们包含用于定义其特定实例的字段。
我们在struct关键字的帮助下定义了结构,后跟我们想要的结构名称。结构的名称应该描述我们在其中组合在一起的数据片段的重要性。
语法
struct Employee { id: i32, name: String, leaves: i8, }
上述语法包含结构的名称,花括号内,我们有不同的领域,即ID是类型I32,名和树叶。
创建实例
要创建Employee结构的实例,我们执行以下操作:
fn main() { let emp1 = Employee { id : 10602, name : String::from("Mukul"), leaves : 9 }; println!("{:?}",emp1); }输出结果
Employee { id: 10602, name: "Mukul", leaves: 9 }
上面的结构体实例是不可变的;我们可以通过添加mut关键字使其可变。
示例
#![allow(unused)] #[derive(Debug)] struct Employee { id: i32, name: String, leaves: i8, } fn main() { let mut emp1 = Employee { id : 10602, name : String::from("Mukul"), leaves : 9 }; println!("{:?}",emp1); emp1.id = 10603; println!("{:?}",emp1); }输出结果
Employee { id: 10602, name: "Mukul", leaves: 9 } Employee { id: 10603, name: "Mukul", leaves: 9 }
单元结构
我们也可以在Rust中有一个不包含任何字段的结构。它们很少有用,但可以与其他功能结合使用。
示例
#![allow(unused)] #[derive(Debug)] struct Person; fn main() { let p = Person; println!("{:?}",p); }输出结果
Person
元组结构
第三种类型的结构称为元组结构;它们包含一个或多个逗号分隔值。
示例
#![allow(unused)] #[derive(Debug)] struct Color(u8, u8, u8); fn main() { let white = Color(1, 1, 1); let Color(r, g, b) = white; println!("White = rgb({}, {}, {})", r, g, b); }输出结果
White = rgb(1, 1, 1)