当前位置: 首页 > 编程笔记 >

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

锺离宸
2023-03-14
本文向大家介绍深入解析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教程之枚举类型详解,包括了Swift教程之枚举类型详解的使用技巧和注意事项,需要的朋友参考一下 枚举定义了一个常用的具有相关性的一组数据,并在你的代码中以一个安全的方式使用它们。 如果你熟悉C语言,你就会知道,C语言中的枚举指定相关名称为一组整数值。在Swift中枚举更为灵活,不必为枚举的每个成员提供一个值。如果一个值(被称为“原始”的值)被提供给每个枚举成员,则该值可以是

  • 本文向大家介绍C#编程中枚举类型的使用教程,包括了C#编程中枚举类型的使用教程的使用技巧和注意事项,需要的朋友参考一下 枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。例如,假设您必须定义一个变量,该变量的值表示一周中的一天。该变量只能存储七个有意义的值。若要定义这些值,可以使用枚举类型。枚举类型是使用 enum关键字声明的。 默认情况下,枚举中每个元素的基础类型是

  • 本文向大家介绍详解Swift中enum枚举类型的用法,包括了详解Swift中enum枚举类型的用法的使用技巧和注意事项,需要的朋友参考一下 一、引言 在Objective-C语言中,没有实际上是整型数据,Swift中的枚举则更加灵活,开发者可以不为其分配值类型把枚举作为独立的类型来使用,也可以为其分配值,可以是字符,字符串,整型或者浮点型数据。 二、枚举语法 Swift中enum关键字来进行枚举的

  • 本文向大家介绍浅析Java编程中枚举类型的定义与使用,包括了浅析Java编程中枚举类型的定义与使用的使用技巧和注意事项,需要的朋友参考一下 定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface。 当您使用"enum"定义枚举类型时,实质上您定义出来的类型继承自 java.lang.Enum 类,而每个枚举

  • 本文向大家介绍深入探究Swift枚举关联值的内存,包括了深入探究Swift枚举关联值的内存的使用技巧和注意事项,需要的朋友参考一下 这是枚举最基础的用法,但是在swift中,对枚举的功能进行了加强,也就是关联值。 关联值可以将额外信息附加到 enum case中,像下面这样子。 我们可以看到,在我们创建一个枚举值t的时候,设置他的选项为test1,同时可以关联3个Int类型的值,然后在switch

  • 本文向大家介绍深入谈谈java的枚举(enum)类型,包括了深入谈谈java的枚举(enum)类型的使用技巧和注意事项,需要的朋友参考一下 前言 在大家日常编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。在java中如何更好的使用这些“数据集”呢?因此枚