深入解析Swift编程中枚举类型的相关使用_Swift

枚举是由用户定义的数据类型的一组相关值。关键字 enum 用来定义枚举数据类型。

枚举功能
枚举在 swift 也类似于 C 和 Objective C 中结构类型

  • 它是在一个类中声明,其值是通过该类的实例来访问
  • 初始成员值是用枚举初始化定义的
  • 其功能也扩展确保标准的协议功能

语法
枚举引入 enum 关键字和一对大括号内将它们定义:

复制代码 代码如下:

enum enumname {
   // enumeration values are described here
}

例如,可以为星期定义枚举如下:

复制代码 代码如下:

enum DaysofaWeek {
   case Sunday
   case Monday
    ---
   case Saturday
}

示例

复制代码 代码如下:

enum names{
   case Swift
   case Closures
}
var lang = names.Closures
lang = .Closures
switch lang
{
   case .Swift:
   println("Welcome to Swift")
   case .Closures:
   println("Welcome to Closures")
   default:
   println("Introduction")
}

当我们上面的程序使用 playground 运行,我们得到以下结果

Welcome to Closures

Swift 中的枚举不象 C 和 Objective C 分配其成员的默认值,相反,成员由它们枚举名称明确定义。枚举名称应该使用大写字母(例如:enum DaysofaWeek)。

复制代码 代码如下:

var weekDay = DaysofaWeek.Sunday

这里所述枚举名'DaysofaWeek'被分配给一个变量 weekday.Sunday。它通知编译器数据类型属于周日将被分配给该特定类的后续枚举成员。一旦枚举成员的数据类型定义,其成员可以通过传递值,并进一步计算进行访问。

枚举与Switch语句
Swift 中的 'Switch' 语句也遵循了多路选择。 只有一个变量被以基于指定的条件的特定时间访问。默认情况下,在switch语句用于捕获不确定的情况(case)。

复制代码 代码如下:

enum Climate{
   case India
   case America
   case Africa
   case Australia
}

var season = Climate.America
season = .America
switch season
{
   case .India:
      println("Climate is Hot")
   case .America:
      println("Climate is Cold")
   case .Africa:
      println("Climate is Moderate")
   case .Australia:
      println("Climate is Rainy")
   default:
      println("Climate is not predictable")
}

当我们上面的程序使用 playground 运行,我们得到以下结果

Climte is Cold

该程序首先定义了Climate 作为枚举名称。那么它的成员如, 'China', 'America', 'Africa' 和 'Australia' 声明属于类 'Climate'. 现在成员 America 被分配到一个 Season 变量。此外,Switch case可以找到对应 .America 的值,并跳转到该特定语句。 输出将显示为 “Climate is Cold”。同样,所有成员可以通过 switch 语句访问。 当条件不满足它打印默认内容 'Climate is not predictable'

枚举可进一步划分到相关的值和原始值。

关联值和原始值之间的差异

枚举与关联值

复制代码 代码如下:

enum Student{
   case Name(String)
   case Mark(Int,Int,Int)
}
var studDetails = Student.Name("Swift")
var studMarks = Student.Mark(98,97,95)
switch studMarks {
   case .Name(let studName):
      println("Student name is: \(studName).")
   case .Mark(let Mark1, let Mark2, let Mark3):
      println("Student Marks are: \(Mark1),\(Mark2),\(Mark3).")
   default:
      println("Nothing")
}

当我们上面的程序使用 playground 运行,我们得到以下结果

Swift
98
97
95

例如,考虑访问学生的名字和标记固定在三个科目枚举名称被声明为 student ,而在枚举类中的成员名称都属于字符串数据类型,标记表示为 mark1, mark2 和 mark3 数据类型为整数。若要访问的是学生的名字或标记分数:

复制代码 代码如下:

var studDetails = Student.Name("Swift")
var studMarks = Student.Mark(98,97,95)

现在,如果块初执行,switch case 将打印学生姓名,否则它将打印学生固定的标记。 如果这两个条件都失败了,将执行默认块。

枚举与原始值
原始值可以是字符串,字符,或任何整数或浮点数类型。每个原始值必须在其枚举声明中是唯一的。当整数用于原始值,如果指定的一些枚举成员没有任何值,它们会自动递增。

复制代码 代码如下:

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

let yearMonth = Month.May.rawValue
println("Value of the Month is: \(yearMonth).")

当我们上面的程序使用 playground 运行,我们得到以下结果:

Value of the Month is: 5.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索swift
枚举
深入解析wpf编程、深入解析wpf编程 pdf、swift 枚举、swift3.0 枚举、swift 枚举使用,以便于您获取更多的相关知识。

时间: 2025-01-20 13:09:46

深入解析Swift编程中枚举类型的相关使用_Swift的相关文章

Swift编程之枚举类型详解_Swift

想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了.Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性.在Swift语言中的枚举可谓是让人眼前一亮.在Swift中的枚举不仅保留了大部分编程语言中枚举的特性,同时还添加了一些好用而且实用的新特性,在本篇文章中将领略一些Swift中枚举类型的魅力. 有小伙伴会问,不就是枚举么,有什么好说的.在Swift中的枚举怎不然,Swift中的枚举的功能要强大的多,不仅

浅析Java编程中枚举类型的定义与使用_java

定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类型时,实质上您定义出来的类型继承自 java.lang.Enum 类,而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance),它们都被默认为 final,所以您无法改变它们,它们也是 static 成员,所以您可以透过类型名称直接使用它们,当然最重要的,它们都 是公开的(public). 举个

Swift编程中数组的使用方法指南_Swift

Swift 数组用于存储相同类型的值的顺序列表.Swift 要严格检查,它不允许错误地在数组中存放了错误的类型. 如果赋值创建数组到一个变量,它总是可变的,这意味着可以通过添加元素来改变它, 删除或更改其项目,但如果分配一个数组常量到则该数组,则数组是不可被改变的, 也就它的大小和内容不能被改变. 创建数组可以使用下面的初始化程序语法来创建某种类型的空数组: 复制代码 代码如下: var someArray = [SomeType]() 下面是创建一个给定的大小,并用初始值的数组的语法: 复制代

举例讲解Swift编程中switch...case语句的用法_Swift

Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性.使用Switch语句很简单: var i = 0 switch i { case 0: "0" //被输出 case 1: "1" default: "2" } 在这个最简单的Switch语句中,与其他语言很不同的一点是:不用显式的加上break.Swift的S

窥探Swift编程中的错误处理与异常抛出_Swift

在Swift 2.0版本中,Swift语言对其错误处理进行了新的设计,当然了,重新设计后的结果使得该错误处理系统用起来更爽.今天的主题就是系统的搞一下Swift中的错误处理,以及看一下Swift中是如何抛出异常的.在编译型语言中,错误一般分为编译错误和运行时错误.我们平时在代码中处理的错误为运行时错误,我们对异常进行处理的操作的目的是为了防止程序出现错误而导致其他的副作用,比如用户数据未保存等等. 在今天的文章中,先给出主动产生异常的几种情况,然后再给出如何处理被动异常. 一.主动退出程序的几种

详解Swift编程中的常量和变量_Swift

常量常量指的是程序无法在其执行期间改变的固定值. 常量可以是任何像整型常量,浮点常量,字符常量或字符串的基本数据类型.也可以是枚举常量. 这些常量和常规变量处理一样,只是它们的值不能在定义后进行修改. 声明常量 使用常量时,则必须使用关键字 let 声明它们如下: 复制代码 代码如下: let constantName = <initial value> 下面是一个简单的例子来说明如何在 Swift 中声明一个常量: 复制代码 代码如下: import Cocoa let constA = 4

Swift教程之枚举类型详解_Swift

枚举定义了一个常用的具有相关性的一组数据,并在你的代码中以一个安全的方式使用它们. 如果你熟悉C语言,你就会知道,C语言中的枚举指定相关名称为一组整数值.在Swift中枚举更为灵活,不必为枚举的每个成员提供一个值.如果一个值(被称为"原始"的值)被提供给每个枚举成员,则该值可以是一个字符串,一个字符,或者任何整数或浮点类型的值. 另外,枚举成员可以指定任何类型,每个成员都可以存储的不同的相关值,就像其他语言中使用集合或变体.你还可以定义一组通用的相关成员为一个枚举,每一种都有不同的一组

class-JPA中枚举类型的变化为什么如果是用序号声明的就有可能产生错误,而如果如果用字符串就不会呢?

问题描述 JPA中枚举类型的变化为什么如果是用序号声明的就有可能产生错误,而如果如果用字符串就不会呢? 枚举类型的变化为什么如果是用序号声明的就有可能产生错误,而如果如果用字符串就不会呢? 解决方案 http://www.360doc.com/content/10/0925/12/1704901_56212305.shtml 解决方案二: 不明白你的需求是什么意思,枚举类定义需要遵守枚举定义的规则的.

浅谈Swift编程中switch与fallthrough语句的使用_Swift

在 Swift 中的 switch 语句,只要第一个匹配的情况(case) 完成执行,而不是通过随后的情况(case)的底部,如它在 C 和 C++ 编程语言中的那样.以下是 C 和 C++ 的 switch 语句的通用语法: 复制代码 代码如下: switch(expression){    case constant-expression  :       statement(s);       break; /* optional */    case constant-expressio