zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    vue教程1-07 模板和过滤器
    vue教程1-06 v-bind属性、class和style
    vue教程1-05 事件 简写、事件对象、冒泡、默认行为、键盘事件
    Webstorm使用教程详解
    diff, cmp, patch
    grep, sed, awk
    which,whereis, locate, find
    tar, rar, unrar, zip, unzip
    groups, usermod, chown, chgrp, chmod
    pwd, cd, ls, touch, mkdir, rmdir, rm
  • 原文地址:https://www.cnblogs.com/fnmain/p/15750984.html
Copyright © 2011-2022 走看看