• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > 深入解析Swift编程中枚举类型的相关使用

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了swift 枚举,swift报文类型,swift类型转换,swift json解析,枚举类型的用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

语法
枚举引入 enum 关键字和一对大括号内将它们定义:
enum enumname {
   // enumeration values are described here
}
</div>
例如,可以为星期定义枚举如下:
enum DaysofaWeek {
   case Sunday
   case Monday
    ---
   case Saturday
}
</div>
示例
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")
}
</div>
当我们上面的程序使用 playground 运行,我们得到以下结果

Welcome to Closures
</div>

Swift 中的枚举不象 C 和 Objective C 分配其成员的默认值,相反,成员由它们枚举名称明确定义。枚举名称应该使用大写字母(例如:enum DaysofaWeek)。
var weekDay = DaysofaWeek.Sunday
</div>
这里所述枚举名'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")
}
</div>
当我们上面的程序使用 playground 运行,我们得到以下结果

Climte is Cold
</div>

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

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

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

2015114172325864.png (404×182)

枚举与关联值
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")
}
</div>
当我们上面的程序使用 playground 运行,我们得到以下结果

Swift
98
97
95
</div>

例如,考虑访问学生的名字和标记固定在三个科目枚举名称被声明为 student ,而在枚举类中的成员名称都属于字符串数据类型,标记表示为 mark1, mark2 和 mark3 数据类型为整数。若要访问的是学生的名字或标记分数:
var studDetails = Student.Name("Swift")
var studMarks = Student.Mark(98,97,95)
</div>
现在,如果块初执行,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).")
</div>
当我们上面的程序使用 playground 运行,我们得到以下结果:

Value of the Month is: 5.
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-28Swift中动态调用实例方法介绍
  • 2017-05-28详解Swift中enum枚举类型的用法
  • 2017-05-28探讨Swift数组和字典
  • 2017-05-28Swift教程之函数详解
  • 2017-05-28解决Android Studio安装后运行出错dose not...和Internal error...
  • 2017-05-28Swift使用Cocoa中的数据类型教程
  • 2017-05-28Swift 3.0基础学习之闭包
  • 2017-05-28swift中c风格的for循环执行效率
  • 2017-05-28Swift教程之字符串和字符详解
  • 2017-05-22Swift 析构过程

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Swift、Objective-C、Cocoa混合编程设置指南
    • 探讨Swift数组和字典
    • Swift中使用可选类型完美解决占位问题
    • 查看import的类是出自哪个jar包的方法
    • swift学习文档(笔记)
    • Swift 可选(Optionals)类型
    • Swift开发iOS应用(1)列表的实现_PHP教程
    • 深入解析Swift语言中的协议
    • Swift教程之集合类型详解
    • Swift编程中的switch...case语句实例解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有