Rust 结构体学习笔记

在 Rust 中,结构体是一种用来存储和组织数据的自定义类型。结构体可以包含多个字段,每个字段可以具有不同的类型,这使得结构体非常灵活。

定义结构体

结构体的定义使用 struct 关键字,后面跟着结构体的名称和一组花括号,其中包含结构体的字段:

rustCopy Code
struct Person { name: String, age: u32, }

上面的例子定义了一个名为 Person 的结构体,该结构体有两个字段:nameage。其中,name 的类型为 Stringage 的类型为 u32

创建结构体实例

要创建一个结构体实例,需要使用结构体的名称并提供所有字段的值:

rustCopy Code
let person = Person { name: String::from("Alice"), age: 30, };

访问结构体字段

可以使用点号(.)语法访问结构体的字段:

rustCopy Code
println!("Name: {}", person.name); println!("Age: {}", person.age);

上面的代码将分别打印出 Name: AliceAge: 30

示例

下面是一个使用结构体的示例,定义了一个 Rectangle 结构体,并实现了计算其面积和周长的方法:

rustCopy Code
struct 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 Code
Area: 1500 Perimeter: 160

上面的代码展示了如何定义和使用结构体以及如何在结构体上实现方法。这些是 Rust 中非常常见的编程模式,特别是在处理图形、游戏等领域中的复杂数据时非常有用。