《从零开始学Swift》学习笔记(Day 24)——枚举(Day 24)——枚举

简介:

 

Swift中的枚举可以定义一组常量、提高程序的可读性;还具有面向对象特性。

使用enum关键词声明枚举类型,具体定义放在一对大括号内,枚举的语法格式如下:

enum 枚举名

{

     枚举的定义

}

“枚举名”是该枚举类型的名称。它首先应该是有效的标识符,其次应该遵守面向对象的命名规范,它由一组成员值和一组相关值组成。

成员值

枚举的成员值默认情况下不是整数类型,以下代码是声明枚举示例:

1
2
3
4
5
6
7
enum  WeekDays {
     case  Monday
     case  Tuesday
     case  Wednesday
     case  Thursday
     case  Friday
}


在这些成员值前面要加上case关键字,也可以将多个成员值放在同一行,用逗号隔开,如下所示:

1
2
3
enum  WeekDays {
     case  Monday, Tuesday, Wednesday, Thursday,Friday
}


下面我们看一个示例,代码如下:

1
2
3
var day = WeekDays.Friday
day = WeekDays.Wednesday
day = .Monday


使用枚举成员赋值时候,我们可以采用完整的“枚举类型名.成员值”的形式,也可以省略枚举类型采用“.成员值”的形式。这种省略形式能够访问的前提是,Swift编译器能够根据上下文环境推断类型。因为我们已经在第1行和第2行给day变量赋值,所以即使第3行代码采用缩写,Swift编译器能够推断出数据类型是WeekDays

原始值

出于业务上的需要,要为每个成员提供某种基本数据类型,我们可以为枚举类型提供原始值(raw values)声明,这些原始值类型可以是:字符、字符串、整数和浮点数等。

原始值枚举的语法格式如下:

1
2
3
4
5
enum  枚举名: 数据类型
{    
    case  成员名 = 默认值
    ...
}


在“枚举名”后面跟“:”和“数据类型”就可以声明原始值枚举的类型,然后在定义case成员的时候需要提供原始值。

以下代码是声明枚举示例:

1
2
3
4
5
6
7
enum  WeekDays: Int {
     case  Monday          = 0
     case  Tuesday        = 1
     case  Wednesday     =  2
     case  Thursday       = 3
     case  Friday         = 4
}


我们声明的WeekDays枚举类型的原始值类型是Int,需要给每个成员赋值,只要是Int类型都可以,但是每个分支不能重复。

相关值

Swift中除了可以定义一组成员值,还可以定义一组相关值(associated values),它有点类似于C中的联合类型。下面看一个枚举类型的声明:

1
2
3
4
enum  Figure {
     case  Rectangle(Int, Int)
     case  Circle(Int)
}


枚举类型Figure(图形)有两个相关值: Rectangle(矩形)和Circle(圆形)。RectangleCircle是与Figure有关联的相关值,它们都是元组类型,对于一个特定的Figure实例,只能是其中一个相关值。从这一点来看,枚举类型的相关值类似于C中的联合类型。

 



本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1746420,如需转载请自行联系原作者

相关文章
|
12天前
|
Swift iOS开发
Swift 枚举
10月更文挑战第28天
24 0
|
6月前
|
存储 定位技术 Swift
【Swift 开发专栏】Swift 中的枚举与结构体
【4月更文挑战第30天】本文探讨了Swift中的枚举与结构体,包括它们的定义、用法及差异。枚举用于表示有限状态或选项,如游戏状态;结构体适合表示具有特定属性和行为的数据,如商品信息。两者均可定义属性和方法,作为函数参数。枚举以整数存储,不可继承,结构体按属性存储且可继承,更灵活。理解两者特点有助于提升编程效率。
35 0
|
6月前
|
Swift
Swift 中的枚举(Enum)
Swift 中的枚举(Enum)
48 2
|
存储 编译器 Swift
Swift-进阶 08:枚举enum
Swift-进阶 08:枚举enum
621 1
Swift-进阶 08:枚举enum
|
Swift
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
420 0
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
|
存储 编译器 Swift
Swift5.0 - day2-流程控制、函数、枚举(下)
Swift5.0 - day2-流程控制、函数、枚举(下)
81 0
Swift5.0 - day2-流程控制、函数、枚举(下)
|
编译器 Swift C++
Swift5.0 - day2-流程控制、函数、枚举(上)
Swift5.0 - day2-流程控制、函数、枚举(上)
138 0
Swift5.0 - day2-流程控制、函数、枚举(上)
Swift - Enum枚举 源码分析
Swift - Enum枚举 源码分析
 Swift - Enum枚举 源码分析
|
Swift
Swift学习笔记——页面跳转
创建一个single view app后,项目中有main.storyboard,里面是一个viewcontroller。 那么我们如何实现页面跳转 首先添加一个导航控制器Navigation Controller。点击右上的➕,然后选择控件拖到面板上即可
1239 0
|
前端开发 测试技术 Swift
Swift学习笔记——新建项目
在xcode菜单中选择 new -> project -> single view app 点击next在弹出窗中填写项目名称 这里languge有可以选择object-c或swift作为项目语言。这里我们学习swift,所以选择swift。 如果language选择swift,下面的user interface可以选择swiftUI和storyboard。 SwiftUI是2019 年 WWDC 大会上,苹果在压轴环节向大众宣布了基于 Swift 语言构建的全新 UI 框架,与flutter类似,是用代码编写页面,支持快速预览。
726 0