推荐答案
在 Rust 中,结构体(struct)是一种自定义数据类型,允许你将多个相关的值组合在一起。结构体的定义使用 struct
关键字,后跟结构体的名称和一对大括号 {}
,大括号内定义结构体的字段(field)。
struct Person { name: String, age: u8, }
在这个例子中,我们定义了一个名为 Person
的结构体,它有两个字段:name
和 age
。name
是一个 String
类型的字段,age
是一个 u8
类型的字段。
本题详细解读
结构体的定义
结构体的定义语法如下:
struct StructName { field1: Type1, field2: Type2, // 更多字段... }
StructName
是结构体的名称,遵循 Rust 的命名规范(通常使用驼峰命名法)。field1
,field2
等是结构体的字段,每个字段都有一个名称和类型。
结构体的实例化
定义结构体后,可以通过以下方式创建结构体的实例:
let person = Person { name: String::from("Alice"), age: 30, };
在这个例子中,我们创建了一个 Person
结构体的实例 person
,并为其字段 name
和 age
赋值。
访问结构体字段
可以使用点号 .
来访问结构体实例的字段:
println!("Name: {}", person.name); println!("Age: {}", person.age);
可变结构体
如果希望修改结构体实例的字段,需要将实例声明为可变的:
let mut person = Person { name: String::from("Alice"), age: 30, }; person.age = 31; // 修改 age 字段
元组结构体
Rust 还支持元组结构体(Tuple Struct),它类似于元组,但有一个名称:
struct Color(u8, u8, u8); let black = Color(0, 0, 0);
元组结构体的字段没有名称,只能通过索引访问。
单元结构体
单元结构体(Unit Struct)是一种没有字段的结构体:
struct UnitStruct; let unit = UnitStruct;
单元结构体通常用于实现某些 trait 或作为标记类型。