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)