05 Rust中的枚举
5.1 创建和访问
枚举的创建和访问在结构上与结构体很相似,成员访问是以路径符号::
而不是点号.
,下面列举了常见的枚举形式
5.2 内存排布和优化
Rust 本质上是一个带标签的联合体,标签最大等于计算机字长:通常是8字节
Option 枚举体优化
可以看到,Option枚举包裹引用类型的数据结构时,优化掉了tag。核心是对于Option而言,tag只有两种情况,0或者1,分别代表None和Some。Rust中引用占8个字节,tag要对齐就要再加七,非常浪费资源。所以当为Some时就优化了这个tag
类Result/Option枚举体优化
形式上类同Result/Option的枚举都享受同样的引用类型优化
再次强调,它们都是针对引用的优化,并不适用其他类型,看下面这个例子
5.3 应用场景
枚举被广泛的应用在各种场景中,如下是简单的归类
关于枚举,今天就分享这么多了,后面涉及到的我们再继续补充
示例代码Github地址:
https://github.com/shiyivei/from-principle-to-practice/blob/main/src/principle-and-practice/src/type_system/custom_struct.rs
更多内容,欢迎关注公众号拾一维
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。