文章目录
1.分类
Rust 中的结构体(struct)根据其字段定义方式,主要分为三种类型。
| 类型 | 语法示例 | 特点 | 访问方式 |
|---|---|---|---|
| 具名字段结构体 | struct User { name: String, age: u8 } |
每个字段都有名称和类型,最常用。 | user.name |
| 元组结构体 | struct Color(u8, u8, u8) |
字段没有名称,只有类型,类似元组。 | color.0, color.1 |
| 单元结构体 | struct Unit; |
没有任何字段。 | 无需访问 |
2.代码示例
rust
// 1. 具名字段结构体(Named-Field Struct)
struct User {
name: String,
age: u8,
}
// 2. 元组结构体(Tuple Struct)
struct Color(u8, u8, u8);
// 3. 单元结构体(Unit Struct)
struct MyUnit;
fn main() {
// 具名字段结构体实例化
let user = User {
name: String::from("Alice"),
age: 30,
};
println!("name: {}", user.name);
// 元组结构体实例化
let black = Color(0, 0, 0);
println!("black: ({}, {}, {})", black.0, black.1, black.2);
// 单元结构体实例化
let _unit = MyUnit;
}
3.其他相关分类方式
除了上述三种基本类型,结构体还可以从其他角度分类:
| 分类角度 | 类型 | 说明 |
|---|---|---|
| 可见性 | pub struct(公开) struct(私有) |
控制结构体是否可以被外部模块访问。 |
| 泛型 | struct Point<T> { x: T, y: T } |
结构体可以使用泛型参数来支持多种类型。 |
| 生命周期 | struct Ref<'a, T> { ptr: &'a T } |
当结构体包含引用时,需要标注生命周期参数。 |
4.小结
Rust 结构体根据字段定义方式分为具名字段、元组、单元三种;此外还可以按可见性、泛型、生命周期进一步分类。