Swift教程之枚举语法
import Foundation //MARK:-------枚举语法-----------
//不像 C 和 Objective-C 一样。Swift 的枚举成员在被创建时不会被赋予一个默认的整数值
enum CompassPoint
{
case North
case South
case East
case West
}
enum Planet
{
case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Nepturn
} var directionToHead = CompassPoint.West
directionToHead = .East switch directionToHead
{
case .North:
print("北方")
case .South:
print("南方")
case .East:
print("东方")
case .West:
print("西方")
default:
print("未知方向")
} //MARK:-------实例值(Associated Values)-----------
//你能够定义 Swift 的枚举存储不论什么类型的实例值。假设须要的话。每一个成员的数据类型能够是各不同样的
enum Barcode
{
case UPCA(Int, Int, Int)
case QRCode(String)
} var productBarcode = Barcode.UPCA(8, 85909_51226, 3)
productBarcode = .QRCode("ABCDEFGHIJKLMNOP") switch productBarcode
{
case let .UPCA(numberSystem, identifier, check):
print("UPC-A with value of \(numberSystem), \(identifier), \(check).")
case let .QRCode(productCode):
print("QR code with value of \(productCode).")
}
// 输出 "QR code with value of ABCDEFGHIJKLMNOP. //MARK:-------原始值(Raw Values)-----------
//原始值能够是字符串。字符,或者不论什么整型值或浮点型值。每一个原始值在它的枚举声明中必须是唯一的。当整型值被用于原始值,假设其它枚举成员没有值时,它们会自己主动递增。 enum PlanetRaw: Int
{
case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
} //使用枚举成员的toRaw方法能够訪问该枚举成员的原始值:
let earthsOrder = PlanetRaw.Earth.rawValue
print(earthsOrder)
// earthsOrder is 3 //MARK:-----------GCD演示----------
var array = ["jack", "rose", "jay", "grace"];
//声明一个全局并发队列,类型是 dispatch_queue_t;DISPATCH_QUEUE_PRIORITY_DEFAULT为队列优先级,默觉得0
var queue: dispatch_queue_t = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) //开启一个线程
dispatch_async(queue, { () -> Void in print(NSThread.currentThread().isMainThread ? "这是主线程" : "这是后台线程")
//第一个參数为次数。第三个參数 block块里面的形參是区分第几次。 dispatch_apply(array.count, queue, { (index:Int) -> Void in print(String(index) + " --- " + array[Int(index)])
})
//回调主线程。运行UI更新
dispatch_async(dispatch_get_main_queue(), { () -> Void in print(NSThread.currentThread().isMainThread ? "这是主线程" : "这是后台线程")
})
})
Swift教程之枚举语法的更多相关文章
- Swift中文教程(六)--枚举和结构
原文:Swift中文教程(六)--枚举和结构 Enumerations 枚举 使用 enum 来创建一个枚举.跟Classes(类)和其他类型的命名方式一样,枚举也可以有Method(方法). enu ...
- 中文版 Apple 官方 Swift 教程《The Swift Programming Language》
简介 欢迎使用 Swift 关于 Swift 版本兼容性 Swift 初见 Swift 版本历史记录 Swift 教程 基础部分 基本运算符 字符串和字符 集合类型 控制流 函数 闭包 枚举 类和结构 ...
- apple Swift教程大全,希望对你有帮助!
1)apple Swift编程入门文档- http://gashero.iteye.com/blog/2075324 一位大神写的关于Swift的一些介绍和简单的使用,里面介绍了Swift和其他语言的 ...
- Swift 学习- 09 -- 枚举
// 递归枚举 // 美家居为一组相关的值定义了一个共同的类型, 使你可以在代码中以类型安全的的方式使用这些值. // 如果你熟悉C语言, 你会知道在C语言中, 枚举会为一组整型值分配相关联的名称, ...
- Swift教程之运算符重载
http://blog.csdn.net/mengxiangyue/article/details/43437797 原文地址:http://www.raywenderlich.com/80818/o ...
- Swift学习-枚举(Enumerations)的使用方法
Swift学习-枚举的使用方法 枚举的使用语法: enum someEnumer { // 枚举的成员值 } 以下是方向的一个例子: enum direction { case Up case Dow ...
- Swift 学习笔记 (枚举)
枚举为一种相关值定义了一个通用类型,从而可以让你在代码中类型安全的操作这些值. Swift中的枚举很灵活,不需要给每一个枚举中的成员都提供值.如果一个值(所谓 原时值) 要被提供给每一个枚举成员,那么 ...
- Swift 和 C# 的语法比较
昨天看到Jacob Leverich 写了一篇文章 Swift is a lot like Scala 介绍Swift 和 Scala 的语法对比,从这篇文章的确可以看到Swift 的语法和 Scal ...
- [Objective-C语言教程]快速枚举(35)
快速枚举是Objective-C的功能,用于枚举集合. 因此,要了解快速枚举,首先需要了解集合,这将在下一节中进行说明. 1. Objective-C集合 集合是基本结构.它用于保存和管理其他对象. ...
随机推荐
- C压缩字符串中的空格
使用纯C语言,去除一个字符串开头和结尾的空格,内部若有连续空格只保留一个. C Code 12345678910111213141516171819202122232425262728293031 ...
- 关于SQLserver的索引的一些脚本
--判断无用的索引: SELECT TOP 30 DB_NAME() AS DatabaseName , '[' + SCHEMA_NAME(o.Schema_ID) + ']' + '.' + '[ ...
- 20165203 实验三 敏捷开发与XP实践
20165203 实验三 敏捷开发与XP实践 任务一: 1.实验要求 实验三 敏捷开发与XP实践 (http://www.cnblogs.com/rocedu/p/4795776.html), Ecl ...
- 20155225 实验二《Java面向对象程序设计》实验报告
20155225 实验二<Java面向对象程序设计>实验报告 一.单元测试 三种代码 知道了伪代码.产品代码.测试代码的关系和用途,并根据老师的例子,按测试代码调试了产品代码. 值得注意的 ...
- C语言:1孩半问题
题目: 一孩半,又称独女户二胎,即中国大陆部分农村的一项计划生育政策,第一胎是女孩的夫妻可以生育第二个子女.如果第二胎有n%人工性别选择干预(选择男孩),试问男女比例为多少.(10分)题目内容: 一孩 ...
- Windows下的Apache
https://blog.csdn.net/weixin_39082031/article/details/79088800
- thinkphp getField()获取一列或一个数据
在开发中经常要获取一个数据的情况,thinkphp中有一个getField()方法可以解决这个问题. 获取一个数据 1 2 $user = M('demo'); $data = $user->g ...
- win7 fiddler报“Creation of the root certificate was not successful”的问题
cd "C:\Program Files (x86)\Fiddler2" makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_Fiddl ...
- 洛谷P3527 [POI2011]MET-Meteors [整体二分]
题目传送门 Meteors 格式难调,题面就不妨放了. 分析: 一道整体二分的练手题. 就是一般的整体二分的套路,但是要注意,将修改和询问加入队列的时候要先加修改再加询问.另外,博主代码打得太丑,常数 ...
- python 与 matlab 混编
用于 Python 的 MATLAB 引擎 API 快速入门 安装用于 Python 的 MATLAB 引擎 API Matlab的官方文档中介绍了 Matlab 与其余编程语言之间的引擎接口,其中包 ...