Swift中定义Enumeration跟其它语言挺类似的,看如下定义一个星期的Enumeration

enum Day:Int{

case Monday = 1, Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday

}

Monday赋值为1其它值则按顺序自动赋值,也是一种比较简便的写法,当然也可以为每个属性赋值

enum Day:Int{

case Monday = 1

case Tuesday = 2,

case Wednesday = 3,Thursday,Friday,Saturday,Sunday

}

let myday = Day.Sunday //自动推测为Day类型的Enumeration

let dayNumber = Day.Sunday.rawValue //值为7

以下定义一个String类型的Enumeration

enum Period:String{

case Morning = "Morning"

case Noon = "Noon"

case AfterNoon = "Afternoon"

case Night = "Night"

case MidNight = "MidNight"

}

Enumeration还有一个很强大的功能叫关值

enum AgeStatus{

case Legal

case NoOldEnought(Int)  //关联值

init(){

self = Legal //default value

}

var description:String{

switch self{

case Legal:

return "Age is legal"

case NoOldEnought(let a):

return "Age \(a) is illegal"

default:

return "Age is illegal"

}

}

}

var sheAgeStatus = AgeStatus()

sheAgeStatus.description  //Age is legal

sheAgeStatus = AgeStatus.NoOldEnought(10)

sheAgeStatus.description // return Age 10 is illegal

Enumeration中还可以定义方法,在上面添加以下方法代码:

func reportStatus() ->String{

return self.description

}

调用方法:

sheAgeStatus.reportStatus()

SWIFT Enumeration(1)的更多相关文章

  1. SWIFT Enumeration(2)

    之前记录了Swift Enumeration(1),这篇算是它的延续吧,继续说下Enumeration,看以下定义 enum TrainStatus { case OnTime case Delay( ...

  2. 【Swift学习笔记00】——enumeration枚举类型遵循协议protocol

    Apple官方文档:The Swift Programming LanguageProtocols and Extensions一节的小节练习,要求自行定义一个enumeration枚举类型,并且遵循 ...

  3. Swift—下标脚本(Subscripts)

    下标脚本可以定义在类(Class).结构体(Struct).枚举(enumeration)这些目标中,可以认为是访问集合,列表或序列的快捷方式,使用下标脚本的索引设置和获取值,不需要再调用实例的特定的 ...

  4. 【Swift学习】Swift编程之旅---枚举(十二)

    枚举为一组相关的值定义一个共同的类型,并允许您在代码中的以类型安全的方式中使用这些值,在 Swift 中,枚举类型是一等(first-class)类型.它们采用了很多传统上只被类所支持的特征,例如计算 ...

  5. 使用swift 中的注意,不断完善中

    1. 应该充分利用swfit的新特性 比如如果按照oc里的习惯,调用一个delegate中都optional函数应该这样写 if delegate != nil && delegate ...

  6. Swift声明参考

    一条声明可以在你的程序里引入新的名字和构造.举例来说,你可以使用声明来引入函数和方法,变量和常量,或者来定义 新的命名好的枚举,结构,类和协议类型.你也可以使用一条声明来延长一个已经存在的命名好的类型 ...

  7. 集合类(Objective-C & Swift)

    内容提要: 本文前两部分讲了Cocoa的集合类和Swift的集合类,其中Cocoa提供的集合类包括NSArray.NSMutableArray.NSDictionary.NSMutableDictio ...

  8. iOS - Swift Swift 语言新特性

    1.Swift 2.0 带来哪些新变化 常规变化: 1.OS X 10.11.iOS 9 和 watchOS 2 SDK 采纳了一些 Objective-C 的特性用来提高 Swift 的编程体验, ...

  9. iOS - Swift Subscript 下标脚本

    1.Subscript 下标脚本允许你通过在实例后面的方括号中传入一个或者多个的索引值来对实例进行访问和赋值.语法类似于实例方法和计算型属性的混合.与定义实例方法类似,定义下标脚本使用 subscri ...

随机推荐

  1. UVa 12545 比特变换器

    https://vjudge.net/problem/UVA-12545 题意:输入两个等长的串S和T,其中S包含字符0,1,?,但T只包含0和1. 用尽量少的步数把S变成T.每步有3种操作: ①把S ...

  2. maven+nexus配置本地私有仓库

    以下是settting.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <settings> ...

  3. python分享题目

    目前的分享题目:1 python在云计算虚拟教室领域的应用 2 python与虚拟货币(华三工程师) 3 python在移动游戏的实践(爪子) 4 python互联网敏捷运维实践(蓝雪) 5 pyth ...

  4. linux下模拟FTP服务器(笔记)

    要在linux下做一个模仿ftp的小型服务器,后来在百度文库中找到一份算是比较完整的实现,就在原代码一些重要部分上备注自己的理解(可能有误,千万不要轻易相信). 客户端: 客户端要从服务器端中读取数据 ...

  5. HTTP请求GET/POST查看工具

    当你有一个http的get请求需要知道结果,可以直接在浏览器上输入,然后等待查看结果.    那如果是一个post请求呢?推荐使用一个国外工具Send HTTP Tool.    传送门:http:/ ...

  6. Codeforces 847E - Packmen

    847E - Packmen 思路:二分时间. 代码: #include<bits/stdc++.h> using namespace std; #define ll long long ...

  7. hdu-4289 最大流Dinic模板题

    拆点,套模板. 详情见代码. // // main.cpp // hdu_4289 // // Created by Luke on 16/8/29. // Copyright © 2016年 Luk ...

  8. President's Path CodeForces - 416E (最短路,计数)

    大意: 给定无向图, 求任意两点间所有最短路经过的边数 刚开始想先用floyd跑出最短路, 然后在DAG上DP, 交了1发, 发现会算重复 贴一下题解的做法 #include <iostream ...

  9. thinkphp3.2分页

    在ThinkPHP 3.1及之前,分页功能可能是放在/Lib/Org/Util中的,到了ThinkPHP 3.2后,分页功能已经整合到了Library/Think中了.而且ThinkPHP 3.2已经 ...

  10. 170301、使用Spring AOP实现MySQL数据库读写分离案例分析

    使用Spring AOP实现MySQL数据库读写分离案例分析 原创 2016-12-29 徐刘根 Java后端技术 一.前言 分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案 ...