Swift 枚举类型的创建与应用

Swift语言中使用enum关键字来进行枚举的创建。

上面的代码创建了一个姓氏枚举类型,这个枚举类型中定义了4个枚举值,分别是张、王、李、赵,上面的写法将4个枚举值分别在4个case语句中定义,开发者也可以在1个case子句中完成多个枚举值的定义,示例如下:

在使用时,枚举和其他类型一样,开发者可以在声明变量时将变量的类型指定为某个枚举类型,也可以通过对变量初始化来使编译器自动推断出变量的类型。枚举中定义的枚举值在使用时,开发者可以使用点语法来获取,示例如下:

实际上,如果一个变量的类型已经确认为某个枚举类型,那么开发者在进行变量赋值的时候是可以将枚举类型省略掉的,直接使用点语法获取枚举值即可,示例如下:

开发中,枚举类型会经常与switch-case结合使用以实现选择结构,这种方式实现的选择结构代码清晰统一,对于开发者来说十分有益,示例如下:

枚举的原始值

前面创建的枚举其实并没有声明一个原始值类型,Swift语言中的枚举支持开发者声明一个原始类型,并将某个已经存在的类型的值与枚举值进行绑定,枚举指定原始值类型的语法与继承的语法有些类似,示例如下:

如果开发者要指定枚举的原始值类型为Int类型,也可以只设置第一个枚举值的原始值,其后的枚举值的原始值会在第一个枚举值原始值的基础上依次递增,示例如下:

通过枚举类型中的rawValue属性来获取枚举的原始值,示例如下:

在枚举变量初始化时,开发者可以使用枚举类型加点语法的方式。如果这个枚举有指定的原始值,也可以通过枚举值的原始值来完成枚举实例的构造,示例如下:

枚举的相关值

Swift语言在很多方面的设计都比其他编程语言更加灵活与现代,枚举的相关值语法最能够体现这一特点。

枚举类型的设计思路是帮助开发者将一些简单的同类数据进行整合。举个例子,在游戏类软件的开发中经常会使用到各种物理模型,以形状为例,开发者通常会定义一系列的枚举值作为物理形状的枚举,如圆形、三角形、矩形等,示例如下:

上面的代码进行了形状的定义,但是有一个问题,这种枚举值的定义方式只适合简单数据类型的定义,而不同的形状可能需要不同的参数。例如圆形需要圆心和半径来确定,矩形需要中心点与宽高来确定,三角形需要3个顶点来确定。如果对枚举类型进行实例化,可以根据不同的形状设置不同的参数,那么在使用时对开发者来说将十分方便。在Swift语言中,对枚举设置相关值就可以完成这样的需求。

在定义枚举值的时候,开发者可以为其设置一个参数列表,这个参数列表被称为枚举的相关值,示例如下:

在创建有相关值枚举的时候,开发者需要提供参数列表中所需要的参数,示例如下:

在switch-case结构语句中,匹配到枚举后,可以通过参数捕获的方式来获取枚举实例的相关值,这里捕获到的相关值参数可以在开发者的代码中使用,示例如下:

猜你喜欢

转载自blog.csdn.net/Alexander_Wei/article/details/78028640