1. // Playground - noun: a place where people can play
  2.  
  3. import UIKit
  4.  
  5. // 枚举语法
  6. enum SomeEnumeration {
  7. // enumeration definition goes here
  8. }
  9. // 定义一个枚举
  10. enum CompassPoint {
  11. case North
  12. case South
  13. case East
  14. case West
  15. }
  16. // 声明枚举时,并不会像C/OC那样为枚举成员赋默认值
  17. // 多个枚举成员出现在一行用逗号隔开
  18. enum Planet {
  19. case Mercury, Venus, Earth, Mars
  20. }
  21.  
  22. var directionHead = CompassPoint.West
  23. // 变量directionHead现在已知为CompassPoint类型,再次赋值时可以省略枚举类型
  24. directionHead = .South
  25.  
  26. // 通过Switch匹配枚举值
  27. switch directionHead {
  28. case .North:
  29. println("north")
  30. case .South:
  31. println("south")
  32. case .West:
  33. println("west")
  34. case .East:
  35. println("east")
  36. default:
  37. break
  38. }
  39.  
  40. // 关联值 Associated Values
  41. enum BarCode {
  42. case UPCA(Int, Int, Int, Int) // UPCA 类型为(Int, Int, Int, Int)
  43. case QRCode(String) // QRCode 类型为 (String)
  44. }
  45.  
  46. var productCode = BarCode.UPCA(, , , )
  47. productCode = .QRCode("ABCDEFG")
  48.  
  49. // 提取关联值 使用let还是var根据case语句内的使用情况决定
  50. switch productCode {
  51. case .UPCA(let a1, let a2, let a3, let a4):
  52. println("UPCA:\(a1)-\(a2)-\(a3)-\(a4)")
  53. case .QRCode(let s1):
  54. println("QRCode:\(s1)")
  55. default:
  56. break
  57. }
  58.  
  59. // 原始值 Raw Values
  60. enum ASCIIControlCharacter: Character {
  61. case Tab = "\t"
  62. case LineFeed = "\n"
  63. case CarriageReturn = "\r"
  64. }
  65.  
  66. // 注意:原始值和关联值是不同的。对于一个特性的枚举成员,它的原始值始终是定义枚举时预设的值,而关联值当你通过一个枚举成员创建变量或者常量时会被设置,每一次都可以不一样
  67.  
  68. // 当整数[ntegers]被用于初始化原始值时,如果其它成员没有特别指定初始值,原始值将会自增
  69. enum SomePlanet: Int {
  70. case Mercury = , Venus, Earth, Mars, Jupiter, Santurn, Uranus, Neptune
  71. }
  72.  
  73. // 通过rawValue属性访问枚举成员
  74. let earthsOrder = SomePlanet.Earth.rawValue
  75.  
  76. // 通过原始值初始化实例
  77. let possiblePlanet = SomePlanet(rawValue: ) // 返回值为optional?

Swift-8-枚举的更多相关文章

  1. swift 的枚举、结构体、类

    一.Swift的枚举 枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值.Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型, ...

  2. Swift Enum 枚举

    前言 枚举是一种自定义的数据类型,在 Swift 中枚举类型拥有相当高的自由度.在 Swift 语言中枚举是一级类型,它拥有在其他语言中只有类才拥有的一些特性,比如实例方法,实例构造器等. 枚举声明的 ...

  3. swift学习——枚举

    swift枚举 1. 枚举基本语法 enum Method { case Add case Sub case Mul case Div } 也可以使用一种更简单的写法 enum Method1{ ca ...

  4. Swift 中枚举

    Swift 中枚举高级用法及实践 字数11017 阅读479 评论0 喜欢20 title: "Swift 中枚举高级用法及实践"date: 2015-11-20tags: [AP ...

  5. Swift - 39 - 枚举类型关联默认值

    //: Playground - noun: a place where people can play import UIKit enum Month: Int { // 这么定义, 后面的Feb, ...

  6. Swift - 38 - 枚举的基本语法

    //: Playground - noun: a place where people can play import UIKit // 创建一个枚举类型就相当于创建了一个新的数据类型, 所以首字母应 ...

  7. Swift中枚举的总结以及使用

    枚举定义了一组具有相关性的数据,是开发者可以再带吗中以一个安全的方式来使用这些值,以又助于提供代码的可读性. 在Swift中,枚举可以分成两种:任意类型的枚举和指定类型的枚举,结构如下: //任意类型 ...

  8. iOS - Swift Enum 枚举

    1.Enum 的创建 1.1 标准定义 枚举的定义 enum CompassPoint { case North case South case East case West } enum Plane ...

  9. Swift - 40 - 枚举更加灵活的使用方式

    //: Playground - noun: a place where people can play import UIKit /* 这里的枚举没有给它的成员默认值, 而是给它绑定了一个类型, 之 ...

  10. 初学swift笔记 枚举(七)

    import Foundation /* 枚举 语法结构 enum 类型 { case 值 } */ //定义一个枚举 写法1 enum LiuShiQun { case Name case Age ...

随机推荐

  1. Deferred content load was not performed. To provide the content, subscribe to the View's QueryControl event

    {"Deferred content load was not performed. To provide the content, subscribe to the View's Quer ...

  2. ssh认证

    密钥认证 密码验证会造成账户口令的外泄,不安全,基于账号的保密性考虑,可以采用密钥验证实现远程连接. Linux--Linux 1.Linux客户端主机上生成密钥文件 ssh-keygen -t rs ...

  3. C#秘密武器之多线程——参数与返回值

    线程函数要么没有参数,要么只能有一个object参数,而且均没有返回值,这样就大大降低了程序的灵活性,其实我们想要的是能像普通方法一样正常使用参数和返回值!能不能实现这个需求呢?下面就介绍两种方法 一 ...

  4. Git学习笔记一--创建版本库、添加文件、提交文件等

    Git,是Linus花了两周时间用C写的一个分布式版本控制系统.牛该怎么定义? 其实,很多人都不care谁写了Git,只在乎它是免费而且好用的!So do I! 下面开始我们的学习: 1.Git安装( ...

  5. jshint错误

    这条命令即可. npm install --save-dev jshint gulp-jshint

  6. bin和sbin区别

    据说这个目录结构是沿袭unix的,不大清楚. bin是binary的缩写,是可执行的二进制文件./bin里面一般是基本的,大家都要用的工具:sbin里面的s是system的意思,是供system ad ...

  7. tomcat禁用webdav

    在tomcat的web.xml,以及自己项目的web.xml中,均需添加以下内容: <security-constraint> <web-resource-collection> ...

  8. 【WEB】jQuery获取页面回滚或跳转事件

    1.效果: 2.Jquery: //记得引入jquery.min.js <script type="text/javascript"> $(function(){ wi ...

  9. StarUML 破解方法

    在安装目录的:StarUML\www\license\node 找到LicenseManagerDomain.js 在 try 前面加上: return { name:"0xcb" ...

  10. Oem7F7 通用完美激活v7.0绿色版 永久激活Windows7/2008

    http://www.21andy.com/blog/20100906/1942.html