03 Rust中的结构体

1 结构体的种类


Rust中结构体有三种:单元结构体,元组结构体以及具名结构体,它代表And含义,在生成时必须为所有成员赋值。具体形式如下:

2 结构体的内存排布


计算机按照字节寻址,指令是字节的整数倍,为了最大化CPU访问效率,Rust编译器会对结构体的字段进行优化重排,如:

但是你也可以通过属性宏来让结构体按照C语言的内存排布规则排布,如:

3 结构体、泛型和Trait


在绝大对数编程语言中,我们都会使用结构体来组织一些数据结构,在Rust中也是这样。特别要注意的是它和泛型参数结合的使用。我们来看一个比较复杂的应用场景

在这个示例中,我们使用了带有多个参数的泛型结构体,并且还使用了幻影类型PhantomData占位。这样结构体体就无需在声明时在字段中将参数定义为泛型了。在实现具体的trait 我们才为泛型指明类型是什么,并且不同的trait我们指定的泛型具体类型也不同。在实际的业务场景中,我们经常会看到这种形式的写法,注意要区分不同情况下的的泛型约束,然后才能构造出正确的类型

示例代码Github地址:

https://github.com/shiyivei/from-principle-to-practice/blob/main/src/principle-and-practice/src/type_system/custom_struct.rs

更多内容,欢迎关注

猜你喜欢

转载自blog.csdn.net/weixin_51487151/article/details/129388299
03