Rust 结构体学习笔记
在 Rust 中,结构体是一种用来存储和组织数据的自定义类型。结构体可以包含多个字段,每个字段可以具有不同的类型,这使得结构体非常灵活。
定义结构体
结构体的定义使用 struct
关键字,后面跟着结构体的名称和一组花括号,其中包含结构体的字段:
rustCopy Codestruct Person {
name: String,
age: u32,
}
上面的例子定义了一个名为 Person
的结构体,该结构体有两个字段:name
和 age
。其中,name
的类型为 String
,age
的类型为 u32
。
创建结构体实例
要创建一个结构体实例,需要使用结构体的名称并提供所有字段的值:
rustCopy Codelet person = Person {
name: String::from("Alice"),
age: 30,
};
访问结构体字段
可以使用点号(.)语法访问结构体的字段:
rustCopy Codeprintln!("Name: {}", person.name);
println!("Age: {}", person.age);
上面的代码将分别打印出 Name: Alice
和 Age: 30
。
示例
下面是一个使用结构体的示例,定义了一个 Rectangle
结构体,并实现了计算其面积和周长的方法:
rustCopy Codestruct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
fn area(&self) -> u32 {
self.width * self.height
}
fn perimeter(&self) -> u32 {
2 * (self.width + self.height)
}
}
fn main() {
let rect = Rectangle {
width: 30,
height: 50,
};
println!("Area: {}", rect.area());
println!("Perimeter: {}", rect.perimeter());
}
输出结果为:
Copy CodeArea: 1500
Perimeter: 160
上面的代码展示了如何定义和使用结构体以及如何在结构体上实现方法。这些是 Rust 中非常常见的编程模式,特别是在处理图形、游戏等领域中的复杂数据时非常有用。