最近我看到了来自苹果的WWDC 2015主题演讲。我也看了一些文档,但我找不到“模式匹配if”部分,它是如何写在他们已经显示的幻灯片之一。
(6800分00秒视频从 Apple Events)

你知道这是指什么吗?还是语法?

所有这真的意味着if语句现在支持像switch语句已经有模式匹配。例如,以下是使用if / else if / else语句来“切换”枚举的有效方式。
enum TestEnum {
    case One
    case Two
    case Three
}

let state = TestEnum.Three

if case .One = state {
    print("1")
} else if case .Two = state {
    print("2")
} else {
    print("3")
}

现在,以下是检查someInteger是否在给定范围内的可接受的方法。

let someInteger = 42
if case 0...100 = someInteger {
    // ...
}

下面是使用The Swift Programming Language的可选模式的更多示例

let someOptional: Int? = 42
// Match using an enumeration case pattern
if case .some(let x) = someOptional {
    print(x)
}

// Match using an optional pattern
if case let x? = someOptional {
    print(x)
}

Swift 2 – 模式匹配在“if”的更多相关文章

  1. 【swift】15-0523 控制流---if switch

    而其他语言中不加break可能会继续往下执行。如果switch分支中没有语句的话,是语法错误。这么做的目的是防止switch语句进行贯穿。分支有多个条件都满足,用逗号分割,上面的”a”,”e”就是用逗号分割的。

  2. 可以匹配就匹配咯: 详解 Swift 的模式匹配

    怒戳查看最终稿@SwiftGG在众多Swift提供给Objective-C程序员使用的新特性中,有个特性把自己伪装成一个无聊的老头,但是却在如何优雅滴解决“鞭尸金字塔“的问题上有着巨大的潜力。很显然我所说的这个特性就是switch语句,对于很多Objective-C程序员来说,除了用在Duff’sDevice上比较有趣之外,switch语句非常笨拙,与多个if语句相比,它几乎没有任何优势。不过Sw

  3. Swift中的模式匹配

    模式是用于匹配的规则值,如switch语句的case,do语句的catch子句,以及if、while、guard、for-in语句的条件。例如,假设你想判断一个整数是大于、小于还是等于零,你可以用if-elseif-else语句,尽管这并不美观:letx=10ifx>0{print}elseifx原文查看:http://bbs.a-coder.cn/thread-7-1-1.html

  4. 《swift2.0 官方教程中文版》 第3章-05模式

    letpoint=(3,2)switchpoint{caselet(x,y):print}//prints"Thepointisat(3,2).”/*元组模式********************************************///元组模式是逗号分隔的,有零个或多个模式的列表,并被一对圆括号括起来。枚举用例模式出现在switch语句中的case标签中,以及if,while,guard和for-in语句的case条件中。is模式和is操作符有相似表现,它们都进行类型转换,却舍弃返回的类型

  5. 模式匹配第一弹: switch, enums & where 子句

    本文作为模式匹配的第一篇介绍文章,旨在抛砖引玉。Switch基本用法Swift中最简单、最为常见的模式匹配就是switch语句,大家对下面的形式都比较熟悉了:但是switch可以更进一步,允许使用包含变量的匹配模式,并在匹配时绑定这些变量。下一部分的计划这篇文章很简单,带你回顾了swith中的一些基本的模式匹配,下一部分将探讨更高级的用法,包括:在enum之外的其他地方使用switch与其他语句一起配合使用模式匹配,包括ifcase,guardcase,forcase,=~,…

  6. 模式匹配第三弹: 自定义的模式匹配和语法糖

    作者:OlivierHalligon,原文链接,原文日期:2015-04-24译者:walkingway;校对:小锅;定稿:numbbbbb在模式匹配系列文章的第一弹和第二弹中,我们已经看到关于switch搭配很多类型的用法,包括元组,范围,字符串,符号和一些其他类型。让你的自定义类型响应模式匹配我们构造一个自定义的结构体:最终打印的结果是3x+2!值得注意的一点是:在使用自定义类型时,Swift不知道switch是否穷尽了所有可能。更好的方式是在switch中直接传入aBook.year。

  7. Swift中switch强大的模式匹配

    不少人觉得Swift中switch语句和C或C++,乃至ObjC中的差不多,此言大谬!很简单,和变量声明一样用let语句:如果我还想进一步增加判断条件呢!?很简单,后面跟where子句:我们可以按照实际需求自由改变模式,最后举一个例子:

  8. Swift 看课本学if,for,switch语句的基本使用

    使用if和switch判断条件,使用for-in、for、while和do-while处理循环。"ifletname=optionalName{greeting="Hello,\"}练习:把optionalName改成nil,greeting会是什么?添加一个else语句,当optionalName是nil时给greeting赋一个不同的值。如果不是nil,会将值赋给let后面的常量,这样代码块中就可以使用这个值了。使用switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。运行swi

  9. 4.8 Swift中switch语句区间和元组模式匹配

    //switch的广义匹配letx=1000//也就是说并没有像C语言那样要求switch后面的是整数常量switchx{//case后面可以跟区间啦case1...9:print("个位数")case10...99:print("十位数")case100...999:print("百位数")case1000...9999:print("千位数")default:print("不符合")}letp

  10. 图书连载14: if条件判断语句、switch条件判断语句、 continue语句和forthrough语句

    通过配合使用else语句,可以进行更多的条件判断:3.3.5switch条件判断语句switch语句会尝试把某个值,与若干个条件进行匹配。根据第一个匹配成功的条件,switch语句会执行对应的代码。当条件判断的情况比较多时,通常用switch语句替换if语句。而是只要匹配到一个case分支,就完成整条switch语句。

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部