• Rust学习之旅(读书笔记):枚举 (Enum)


    Rust学习之旅(读书笔记):枚举 (Enum)

    C 语言的枚举类型很弱,不如后来的语言,也不如之前的语言。在 C 语言里面枚举量就是一个名字,更方便的定义常量。今天读了《The Rust Programming Language》的 6.1 节,让我对枚举的用处产生了新的理解。

    在什么时候使用枚举呢?当遇到一些可以枚举出来的东西的时候就可以使用枚举,比方说 IP 地址有 IPv4 和 IPv6,就枚举出来这两种类型,这个适合就可以用枚举,分别有 IPv4 和 IPv6 两个枚举量。这就让我想到了另外一个例子,一个用 C 语言实现的解析 JSON 的库。

    JSON 有只有 6 种数据类型,就可以枚举出来这 6 种数据类型。枚举做动词的时候表达的就是可以一个一个列出来的意思。在这样的场景中,使用枚举的好处在于我们知道他是什么类型,然后我们可以根据这个类型做应该做的事情,这就是枚举提供的抽象。当遇到类似的情况,我们就可以定义出来枚举,然后很方便的去对不同的情况也就是不同的枚举量写对应的代码。

    换个例子,当我们要分析代码的语法的时候也是如此,哪一部分是语句,哪一部分是表达式......

    Rust 的枚举的成员可以带数据,这样只需要传枚举量也能取到对应的数据。读了这一小节,我就把为啥要用枚举和什么时候枚举的问题想通了。知道了为啥在做那个 JSON 库的时候用了枚举,知道了在什么时候用枚举有好处。等学编译原理的时候,我就不用想不通为啥用枚举了。这是一个好的设计!

    碎碎念:
    另外 C++ 有 enum class。这一小结还提到了 Rust 没有 NULL 这个概念,另外下一小节即将引入 match。

  • 相关阅读:
    适用于ASP.NET的留言本(翻译)
    大足石刻一日游
    Zonet 宽带路由器eMule端口映射设置
    在公式编辑器中使用键盘
    TAU G2的错误信息:TSC0134: Transition must end with stop, nextstate or join action
    Sony DV的CCD也是有问题的
    使用UltraEdit实现从UNIX文件到DOS文件的批量转换
    在PowerPoint中改变公式编辑器的颜色
    如何在Visual Studio.NET 2003下编译ANTLR 2.77
    如何修复修复损坏的TAU G2的.u2文件
  • 原文地址:https://www.cnblogs.com/fnmain/p/15750984.html
Copyright © 2020-2023  润新知