Switch在swift中的使用
switch的简单使用:
相比 C 和 objective - C 中的 switch 语句,Swift 中的 switch 语句不会默认的掉落到每个 case 的下面进入 另一个 case.相反,第一个匹配的 switch 语句当第一个匹配的 case 一完成, 就完成了它整个的执行。而不需 要一个明确的 break 语句。这使得 switch 语句比在 C 语言中使用更安全、更简单,并避免错误地执行多个 case。
从例子学习:
let anotherCharacter :Character = "a" switch anotherCharacter {
case "a":
println("a")
case "A":
println("The letter is A") default:
println("NOT letter")
}
通过swift中的playground中可以看到上述代码会输出:"a"
解释一下为什么书"a"字符:在程序中定义一个anotherCharacter常量字符,通过Switch语句中的case进行判断,当与第一个case相遇时发现就是我们想要找得,然后就会执行case中相应的代码块输出"a"字符。
注意:每个case语句至少包含一个可执行语句,否则程序无效
case可以与多个对象进行匹配,之间用逗号隔开:
switch anotherCharacter {
case "b","c","d":
println("输出bcd")
case "a","e","f":
println("输出aef")
default:
println("未找到")
} //程序会输出:输出aef
因为在执行程序时,与第一个case中的三个对象进行比较判断,发现没有我们想要的,于是紧接着执行第二个case并与其中的多个对象进行比较判断。
Switch中的元组使用:
写一个简单的例子:使用一个点坐标(x,y),表示为一个简单的元组型(Int,Int),并在示例后面的图中将其分类
let OriginPoint = (1, 1)
switch OriginPoint{
case (0,0):
println("(0,0) is at the origin")
case (_,0):
println("(\(OriginPoint.0), 0) is on the x-axis")
case (0,_):
println("(0, \(OriginPoint.1)) is on the y-axis")
case (-2...2,-2...2):
println("(\(OriginPoint.0), \(OriginPoint.1)) is inside the box")
default:
println("(\(OriginPoint.0), \(OriginPoint.1)) is outside of the box") }
//输出:"(1, 1) is inside the box"
相应的说明:(_,0)和(0,_)中"_"符号在Swift中代表忽略值得意思;(-2...2,-2...2)中的代表x取值在[-2,2]的区间,y取值在[-2,2]的区间。
Switch在swift中的使用的更多相关文章
- Swift中if与switch语句使用一例
在Swift中相同的条件处理有if和switch两个语句,我们如何取舍呢? 一种情况下我们只在乎x是否在一个范围内,但并不关心x是否穷尽!换句话说不关心在满足范围条件的其他情况下,此时我们可以考虑用i ...
- Swift中switch强大的模式匹配
不少人觉得Swift中switch语句和C或C++,乃至ObjC中的差不多,此言大谬! 让本猫带领大家看一下Swift中switch语句模式匹配的威力. 所谓模式匹配就是利用一定模式(比如couple ...
- Swift中的switch 和 do while
switch后面的()能够省略 OC中的switch假设没有break就会穿透(依次运行),在Swift中不会穿透(可理解默认就有break) OC中入股要在case中定义变量,必要要加上{}确定作用 ...
- [翻译]理解Swift中的Optional
原文出处:Understanding Optionals in Swift 苹果新的Swift编程语言带来了一些新的技巧,能使软件开发比以往更方便.更安全.然而,一个很有力的特性Optional,在你 ...
- 使用swift 中的注意,不断完善中
1. 应该充分利用swfit的新特性 比如如果按照oc里的习惯,调用一个delegate中都optional函数应该这样写 if delegate != nil && delegate ...
- Swift 中范围和区间如何使用?
虽然现在swift语言已经发展到了2.0版了,但是相信很多学习iOS开发的童鞋仍对swift语言存在各种各样的疑问,今天小编将为大家详细介绍swift中的范围和区间,下面我们一起来看看吧. Range ...
- 记OC迁移至swift中笔记20tips
写久了OC后来写swift,总感觉写着是swift的皮毛,但是实际上是OC的核心,这里整理了OC迁移至swift中的一些小细节. 1 在当前类中,实例方法调用属性以及方法都可以将self省略掉,而且是 ...
- Swift面向对象基础(上)——Swift中的枚举
Swift中枚举 学习笔记来自<极客学院> import Foundation /**********1*Swift定义枚举的语法格式*************/ /* enum 枚举名 ...
- Swift 中的函数(下)
学习来自<极客学院:Swift中的函数> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 import Foundation /******** ...
随机推荐
- saiku查询结果返回地址(saiku交互过程)
提交mdx语句,执行后, 查询结果的获得,访问这个地址: http://99.999.99.99:8080/saiku/rest/saiku/anonymousUser/query/4FF7D01E- ...
- Java-ServletContext
//定义了一系列servlet用来与servlet 容器交流的方法 public interface ServletContext { /** * Returns a <code>Serv ...
- PS图层混合算法之三(滤色, 叠加, 柔光, 强光)
滤色模式: 作用结果和正片叠底刚好相反,它是将两个颜色的互补色的像素值相乘,然后除以255得到的最终色的像素值.通常执行滤色模式后的颜色都较浅.任何颜色和黑色执行滤色,原色不受影响;任何颜色和白色执行 ...
- OAF实现下拉菜单联动
当需要输入多个下拉菜单选项时,可能某些下拉菜单是有级联关系的.这时候就需要使用级联的下拉菜单来解决.下面的教程将介绍如何使用ppr制作级联下拉菜单 一.新建AM 在test.oracle.apps.c ...
- mysql进阶(十六)常见问题汇总
mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...
- Linux - 动态(Dynamic)与静态(Static)函数库
首先我们要知道的是,函式库的类型有哪些?依据函式库被使用的类型而分为两大类,分别是静态 (Static) 与动态 (Dynamic) 函式库两类. 静态函式库的特色: 扩展名:(扩展名为 .a) ...
- shell中关于sort的-o选项
sort -o选项意思为将排序后的结果写入文件,但你可能会说我可以重定向啊: sort >file 但如果你要排序文件names里的行再写回排序后的结果: sort names > nam ...
- 快速熟悉Oracle索引
一.索引 1.1 什么是索引? 一种用于提升查询效率的数据库对象: 通过快速定位数据的方法,减少磁盘的输入输出操作: 索引信息与表独立存放: Oracle数据库自动使用和维护索引. 1.2 索引分类 ...
- redis存入中文,取出来显示不正常
问题: 127.0.0.1:6379> set name 张泰松OK127.0.0.1:6379> get name"\xe5\xbc\xa0\xe6\xb3\xb0\xe6\x ...
- AngularJS中service,factory,provider的区别
一.service引导 刚开始学习Angular的时候,经常被误解和被初学者问到的组件是 service(), factory(), 和 provide()这几个方法之间的差别.This is whe ...