创建和访问枚举的创建和访问在结构上与结构体很相似,成员访问是以路径符号::而不是点号
枚举的创建和访问在结构上与结构体很相似,成员访问是以路径符号::
而不是点号.
,下面列举了常见的枚举形式
Rust 本质上是一个带标签的联合体,标签最大等于计算机字长:通常是8字节
Option 枚举体优化
可以看到,Option枚举包裹引用类型的数据结构时,优化掉了tag。核心是对于Option而言,tag只有两种情况,0或者1,分别代表None和Some。Rust中引用占8个字节,tag要对齐就要再加七,非常浪费资源。所以当为Some时就优化了这个tag
类Result/Option枚举体优化
形式上类同Result/Option的枚举都享受同样的引用类型优化
再次强调,它们都是针对引用的优化,并不适用其他类型,看下面这个例子
枚举被广泛的应用在各种场景中,如下是简单的归类
关于枚举,今天就分享这么多了,后面涉及到的我们再继续补充
示例代码Github地址:
https://github.com/shiyivei/from-principle-to-practice/blob/main/src/principle-and-practice/src/type_system/custom_struct.rs
更多内容,欢迎关注公众号拾一维
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!