Swift中Switch的学习

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]的区间。

时间: 2024-10-14 03:16:05

Swift中Switch的学习的相关文章

Swift中switch强大的模式匹配

不少人觉得Swift中switch语句和C或C++,乃至ObjC中的差不多,此言大谬! 让本猫带领大家看一下Swift中switch语句模式匹配的威力. 所谓模式匹配就是利用一定模式(比如couple)去定制自己需要的匹配结果,比如以下一个3D空间的点坐标: let point3D:(x:Int,y:Int,z:Int) = (1,2,3) 我们首先做一些简单的匹配,只是简单的比较是否等于或不等于指定的常量: switch(point3D){ case (0,0,0):print("Origin

swift中闭包的学习。

在swift中的闭包等同于OC中的block,它的用途就是在于可以包装一段代码在必要的时候进行调用. 闭包定义:  {(类型列表) -> 返回值 in // 多条swift语句 // 执行代码  insert coding } 实际创建闭包代码如下: 1 var square = {(value1 value1:Int,value2 value2:Int)->Int in 2 // 代码块 3 if value1>value2{ 4 return value1 5 } 6 return

Swift 中的开关语句switch在swift中的使用

在swift 中使用switch 开关语句在进行匹配的时候不需要在匹配成功的地方加上break了,在swift中它会自动在匹配成功的地方跳出去.不会在向下面执行 example: “let vegetable = "red pepper"switch vegetable {case "celery": let vegetableComment = "Add some raisins and make ants on a log."case &qu

swift学习笔记 - swift中常用关键字

swift中常用关键字 **用作声明的关键字: ** class.deinit.enum.extension.func.import.init.let.protocol.static.struct.subscript.typealias.var 用作语句的关键字 break.case.continue.default.do.else.fallthrough.if.in.for.return.switch.where.while 用作表达和类型的关键字: as.dynamicType.new.is

ios学习:swift中实现分享到微博、facebook,twitter等

在swift中打开分享功能原来是如此的简单. 1.首先须要 import Social 2.在分享button事件以下 var controller:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeSinaWeibo) controller.setInitialText("一起来swift吧!") controller.addImage(UIImage(named: "

swift学习笔记-----swift中的指针

swift语言为了简化,把指针隐形化了.没有像OC中那样的" * ".把底层的问题交给C语言去处理,我们可以在swift中调用C 语言来解决.当然,OC也是可以调用的. 但是在某些场景下,这种调用可能不是很方便.比如,基于字节流的解析中,这时我们所接受的数据是要进行解析,可能用到指针.如果在C中去调用,当然也是可以的.但如果想写的简洁一些,用swift直接去处理这些,是否可以呢.那就要看在swift中是否很好的去使用指针呢. 事实上,swift是支持使用指针的.苹果已经公开了swift

swift学习第二天:swift中的基本数据类型

一:swift基本数据类型 Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等等 先了解整型和浮点型 整型 有符号 Int8 : 有符号8位整型 Int16 : 有符号16位整型 Int32 : 有符号32位整型 Int64 : 有符号64位整型 Int : 和平台相关(默认,相当于OC的NSInteger) 无符号 UInt8 : 无符号8位整型 UInt16 : 无符号16位整型 UInt32 : 无符号32位整型 UInt64 : 无符号64位整型 UInt : 和平台相关(

如何模块化swift中的状态?

本文和大家分享的主要是模块化swift中状态相关内容,一起来看看吧,希望对大家学习swift有所帮助. 在构建应用或设计系统的时候,最困难的事情之一就是如何建模并处理状态.当应用的某些部分处于我们意料之外的状态时,管理状态的代码也是一个非常常见的 bug 来源. 这周,让我们看一看能更容易处理并响应状态改变的编码技术 - 让代码更加强壮,不容易出错.在本文中,我不会讨论具体的框架或者更大的应用程序架构范围的更改(比如 RxSwift.ReSwift 或者使用 ELM 风格的架构,我会在之后讨论它

Swift面向对象基础(上)——Swift中的枚举

Swift中枚举 学习笔记来自<极客学院> 1 import Foundation 2 3 /**********1*Swift定义枚举的语法格式*************/ 4 /* 5 enum 枚举名 { 6 使用case关键字列出所有枚举值 7 枚举的其他成员 8 } 9 */ 10 //定义枚举 11 enum Season{ 12 case Spring 13 case Summer 14 case Fall 15 case Winter 16 } 17 //使用一个case列举所