7.1.4 关联值
Swift在枚举上可以说是花了很大的功夫,增加了很多强大的功能,例如枚举可以为每个可能值再增加关联值。接着上一节的挡位信息,在D挡的情况下会有一个数字代表当前在D的第几挡,这里为D增加一个数字关联值,示例如下:
动手写7.1.9 EnumWithValue

控制台输出如下:

本例中定义了D的关联值是(number: UInt)类型,它只有一个关联值,读者也可以尝试多关联几个值,每个值之间使用逗号“,”隔开。在获取挡位信息时,下面这行代码让switch匹配到D之后将number绑定到了dnumber上。

本例中,调用drive方法时,代码会首先判断挡位是否在D挡上,如果是则直接返回,如果不是则从D挡开始,并且D挡中的number为1。读者可以自己尝试实现加速方法,在加速方法中需要自己实现D挡中number的增加。接下来的小节我们会介绍与枚举类型相似的结构体。