1.软文推荐

2.软文推荐

3.软文推荐

Swift是一种适用于iOS和OS X应用的全新编程语言,它建立在最好的C和Objective-C语言之上,并且没有C语言的兼容性限制。Swift采用安全的编程模式,增加了现代功能使编程更容易、更灵活、更有趣。

枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。

Swift 的枚举类似于 Objective C 和 C 的结构,枚举的功能为:

它声明在类中,可以通过实例化类来访问它的值。

枚举也可以定义构造函数(initializers)来提供一个初始成员值;可以在原始的实现基础上扩展它们的功能。

可以遵守协议(protocols)来提供标准的功能。

语法

Swift 中使用 enum 关键词来创建枚举并且把它们的整个定义放在一对大括号内:

enum enumname {
  // 枚举定义放在这里
}

例如我们定义以下表示星期的枚举:

import Cocoa

// 定义枚举
enum DaysofaWeek {
   case Sunday
   case Monday
   case TUESDAY
   case WEDNESDAY
   case THURSDAY
   case FRIDAY
   case Saturday
}

var weekDay = DaysofaWeek.THURSDAY
weekDay = .THURSDAY
switch weekDay
{
case .Sunday:
   print("星期天")
case .Monday:
   print("星期一")
case .TUESDAY:
   print("星期二")
case .WEDNESDAY:
   print("星期三")
case .THURSDAY:
   print("星期四")
case .FRIDAY:
   print("星期五")
case .Saturday:
   print("星期六")
}

以上程序执行输出结果为:

星期四

枚举中定义的值(如 Sunday,Monday,……和Saturday)是这个枚举的成员值(或成员)。case关键词表示一行新的成员值将被定义。

注意: 和 C 和 Objective-C 不同,Swift 的枚举成员在被创建时不会被赋予一个默认的整型值。在上面的DaysofaWeek例子中,Sunday,Monday,……和Saturday不会隐式地赋值为0,1,……和6。相反,这些枚举成员本身就有完备的值,这些值是已经明确定义好的DaysofaWeek类型。

var weekDay = DaysofaWeek.THURSDAY

weekDay的类型可以在它被DaysofaWeek的一个可能值初始化时推断出来。一旦weekDay被声明为一个DaysofaWeek,你可以使用一个缩写语法(.)将其设置为另一个DaysofaWeek的值:

var weekDay = .THURSDAY

当weekDay的类型已知时,再次为其赋值可以省略枚举名。使用显式类型的枚举值可以让代码具有更好的可读性。

枚举可分为相关值与原始值。

相关值与原始值的区别
相关值

以下实例中我们定义一个名为 Student 的枚举类型,它可以是 Name 的一个字符串(String),或者是 Mark 的一个相关值(Int,Int,Int)。

import Cocoa

enum Student{
   case Name(String)
   case Mark(Int,Int,Int)
}
var studDetails = Student.Name("Runoob")
var studMarks = Student.Mark(98,97,95)
switch studMarks {
case .Name(let studName):
   print("学生的名字是: (studName)。")
case .Mark(let Mark1, let Mark2, let Mark3):
   print("学生的成绩是: (Mark1),(Mark2),(Mark3)。")
}

以上程序执行输出结果为:

学生的成绩是: 98,97,95。
原始值

原始值可以是字符串,字符,或者任何整型值或浮点型值。每个原始值在它的枚举声明中必须是唯一的。

在原始值为整数的枚举时,不需要显式的为每一个成员赋值,Swift会自动为你赋值。

例如,当使用整数作为原始值时,隐式赋值的值依次递增1。如果第一个值没有被赋初值,将会被自动置为0。

import Cocoa

enum Month: Int {
   case January = 1, February, March, April, May, June, July, August, September, October, November, December
}

let yearMonth = Month.May.rawValue
print("数字月份为: (yearMonth)。")

以上程序执行输出结果为:

数字月份为: 5。

本文来源:www.lxlinux.net/8323.html,若引用不当,请联系修改。

相关文章 8

1

腾讯云服务器双11活动(腾讯云服务器双十一) 3分钟前

目录:1、腾讯云买哪个服务器配置?2、阿里云和腾讯云的双十一活动出来了,其它云服务商的活动怎么还没看到呢?3、腾讯云服务器怎么...

2

SpringCloud URL的重定向及转发具体方法 6分钟前

本篇文章重点为大家讲解一下SpringCloud URL的重定向及转发具体方法,有需要的小伙伴可以参考一下。 Web UI项目中, 很多 Spring controller 视图函...

3

网站ping工具(强大的Ping工具) 8分钟前

目录:1、站长工具ping?2、ping是什么 如何ping一个站点3、百度批量ping工具有什么用站长工具ping? 站长工具是每个站长必备的,而且是每天...

4

ubuntu 11.10 部署apache2 tomcat6 11分钟前

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有...

5

vps香港韩国日本(vps香港vps) 12分钟前

目录:1、日本vps和韩国vps哪个延迟2、哪款海外 VPS 性价比高3、可以国外的vps4、国外VPS云服务器选择攻略心得分享日本vps和韩国vps哪个延迟...

6

对于 Linux 工程师,我们每天面对的最多的就是黑乎乎的终端,以及在终端里敲入的各种 15分钟前

一个命令/程序在运行过程中需要花费很长时间,而在这期间系统可能处于假死状态,我们点击什么都没反应,只好等待或重启系统; 我们只...

7

轻量云服务器是什么(轻量服务器和云服务器) 18分钟前

目录:1、轻量应用服务器和云服务器的区别在哪里?2、阿里云轻量化服务器可以用于搭建《我的世界》吗?3、轻量应用服务器和云服务器...

8

分享一下shell的简单使用方法 20分钟前

Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁,提供了用户与内核进行交互操作的一种接口,实际上Shell是一个命令解释器,它会...