Swift中的枚举与实际示例
介绍
枚举(Enum)为一组相关值定义一种通用类型,并使您能够在代码中以类型安全的方式使用这些值。
假设我们有一个名为dayType
的方法,该方法接受一周中的任何一天,然后返回Weekend
为Saturday and Sunday
, Weekday
为Monday, Tuesday, Wednessday, Thursday and Friday
并返回This is not a valid date
因为它无法识别已通过的内容进去。 该函数将按方面工作,但是当您实际要传递friday
,即使我们实际上要键入的是friday
您误输入了friday
时会发生什么。 上面的开关转到默认值。 This is not a valid date
。 这就是类型安全的enum
带入表中。 它通过为一组相关值提供通用类型来帮助我们避免此类风险,如下所示:
通过定义用于保存日期的枚举,我们已经能够消除String的使用。 我们不需要在switch语句中的day枚举的每个声明之前使用Day
追加,因为我们已经将day分配为Day类型。 因此,可以将dayType函数简化为以下形式:
我们必须了解,枚举最适合于声明具有有限可能状态的类型,例如方向(北,南,西,东),运动(上,下,左,右)等。
枚举值
我们可以为每个enum
案例分配值。 如果enum
本身确实与某物有关,则这很有用
我们可以使用rawValue
关键字访问分配给枚举的值。 要访问上面的Week枚举,我们可以使用Week.Monday.rawValue
,它将返回Weekday
。
枚举关联值
关联值是将附加信息附加到enum
案例的一种绝佳方法。 假设您正在编写交易引擎,则有两种不同的可能的交易类型,即买入和卖出,它们将具有特定的库存和金额。 我们可以使用如下的关联枚举值来表示
枚举方法
我们还可以在如下enum
定义方法
注意上面的代码片段,对于enum
每种情况,func描述都将返回“ This is a apple device”。 为了避免这种情况,我们可以在以下描述方法中使用switch语句