复合数据类型,又称做自定义类型,共分为几类:
- Struct 结构体
- Enum 枚举
- tuple 元组
所有的复合数据类型都是有其他数据类型组合起来的,这里其他数据类型可能是基本数据类型,也可能是自定义数据类型。我将组成复合数据类型的类型称为字段,更好说明。
注意:rust中复杂类型的内存布局与c语言内存布局并不一致,具体说明查看rust死灵书。
struct
结构体分为三种:
- 具名字段 结构体
- 元组结构体
- 单元结构体
具体代码如下:
struct Regular { //具名字段结构体
field1: f32,
field2: String,
pub field3: bool
}
struct Tuple(u32, String);//元组结构体
struct Unit;//单元结构体
enum
一个典型的枚举声明如下。
enum ComplexEnum {
Nothing,
Something(u32),
LotsOfThings {
usual_struct_stuff: bool,
blah: String,
}
}
tuple
元组类型,已讲过。