深入解析Swift编程中枚举类型的相关使用
枚举是由用户定义的数据类型的一组相关值。关键字enum用来定义枚举数据类型。
枚举功能
枚举在swift也类似于C和ObjectiveC中结构类型
- 它是在一个类中声明,其值是通过该类的实例来访问
- 初始成员值是用枚举初始化定义的
- 其功能也扩展确保标准的协议功能
语法
枚举引入enum关键字和一对大括号内将它们定义:
enumenumname{ //enumerationvaluesaredescribedhere }
例如,可以为星期定义枚举如下:
enumDaysofaWeek{ caseSunday caseMonday --- caseSaturday }
示例
enumnames{ caseSwift caseClosures } varlang=names.Closures lang=.Closures switchlang { case.Swift: println("WelcometoSwift") case.Closures: println("WelcometoClosures") default: println("Introduction") }
当我们上面的程序使用playground运行,我们得到以下结果
WelcometoClosures
Swift中的枚举不象C和ObjectiveC分配其成员的默认值,相反,成员由它们枚举名称明确定义。枚举名称应该使用大写字母(例如:enumDaysofaWeek)。
varweekDay=DaysofaWeek.Sunday
这里所述枚举名'DaysofaWeek'被分配给一个变量weekday.Sunday。它通知编译器数据类型属于周日将被分配给该特定类的后续枚举成员。一旦枚举成员的数据类型定义,其成员可以通过传递值,并进一步计算进行访问。
枚举与Switch语句
Swift中的'Switch'语句也遵循了多路选择。只有一个变量被以基于指定的条件的特定时间访问。默认情况下,在switch语句用于捕获不确定的情况(case)。
enumClimate{ caseIndia caseAmerica caseAfrica caseAustralia }
varseason=Climate.America season=.America switchseason { case.India: println("ClimateisHot") case.America: println("ClimateisCold") case.Africa: println("ClimateisModerate") case.Australia: println("ClimateisRainy") default: println("Climateisnotpredictable") }