swift where与匹配模式的实例详解

 更新时间:2017年07月19日 15:32:28   作者:追到梦的魔术师  
这篇文章主要介绍了swift where与匹配模式的实例详解的相关资料,这里附有简单的示例代码,讲的比较清楚,需要的朋友可以参考下

swift where与匹配模式的实例详解

前言:

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

1、基本使用

Swift中switch语句case后面可以用where对条件进行限制

let point = (3,3)
switch point{
case let (x,y) where x == y:
  print("It's on the line x == y!")
case let (x,y) where x == -y:
  print("It's on the line x == -y!")
case let (x,y):
  print("It's just an ordinary point.")
  print("The point is ( \(x) , \(y) )")
}

2、使用if - case - where语句替代switch语句的使用方法

let age = 19
switch age{
case 10...19:
  print("You're a teenager.")
default:
  print("You're not a teenager.")
}


if case 10...19 = age{
  print("You're a teenager.")
}

if case 10...19 = age where age >= 18{
  print("You're a teenager and in a college!")
}

注意:case条件必须放在”=”之前

swift 3.0以后if case 后面的”where”用”,”代替

3、if-case 与元组组合使用(元组解包使用)

let vector = (4,0)
if case ( let x , 0 ) = vector where x > 2 && x < 5{
  print("It's the vector!")
}

4、case - where 与循环组合使用

for i in 1...100{
  if i%3 == 0{
    print(i)
  }
}

for case let i in 1...100 where i % 3 == 0{
  print(i)
}

使用case限制条件可以大大减少代码量,使用起来非常方便,是swift语言的一大特色,好好掌握可以写出很优美的简洁的代码

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Swift中defer的正确使用方法

    Swift中defer的正确使用方法

    准备把 swift 文档再扫一遍,发现了defer这个关键字,所以下面这篇文章主要给大家介绍了关于Swift中defer的正确使用方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-11-11
  • Swift如何在应用中添加图标更换功能的方法

    Swift如何在应用中添加图标更换功能的方法

    本篇文章主要介绍了Swift如何在应用中添加图标更换功能的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Swift使用CollectionView实现广告栏滑动效果

    Swift使用CollectionView实现广告栏滑动效果

    这篇文章主要为大家详细介绍了Swift使用CollectionView实现广告栏滑动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • RxSwift使用技巧之过滤操作详解

    RxSwift使用技巧之过滤操作详解

    RxSwift的目的是让让数据/事件流和异步任务能够更方便的序列化处理,能够使用Swift进行响应式编程,下面这篇文章主要给大家介绍了关于RxSwift使用技巧之过滤操作的相关资料,需要的朋友可以参考下。
    2017-09-09
  • Swift学习笔记之构造器重载

    Swift学习笔记之构造器重载

    Swift 将为所有属性已提供默认值的且自身没有定义任何构造器的结构体或基类,提供一个默认的构造器。这个默认构造器将简单的创建一个所有属性值都设置为默认值的实例。
    2014-11-11
  • 判断 ScrollView List 是否正在滚动详解

    判断 ScrollView List 是否正在滚动详解

    这篇文章主要为大家介绍了判断 ScrollView、List 是否正在滚动示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 实例讲解Swift中引用类型的ARC自动引用计数

    实例讲解Swift中引用类型的ARC自动引用计数

    自动引用计数是在Objective-C中就有的特性,用来辅助管理对象的引用,这里我们就来以实例讲解Swift中引用类型的ARC自动引用计数:
    2016-07-07
  • 在Swift中使用KVO的细节以及内部实现解析(推荐)

    在Swift中使用KVO的细节以及内部实现解析(推荐)

    这篇文章主要介绍了在Swift中使用KVO的细节以及内部实现解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Swift hello world!Swift快速入门教程

    Swift hello world!Swift快速入门教程

    这篇文章主要介绍了Swift hello world!Swift快速入门教程,本文在快速了解Swift编程语言,需要的朋友可以参考下
    2014-07-07
  • 简单了解Swift语言中的break和continue语句的用法

    简单了解Swift语言中的break和continue语句的用法

    这篇文章主要简单介绍了Swift语言中的break和continue语句的用法,与其他语言的一样用于循环语句流程控制,需要的朋友可以参考下
    2015-11-11

最新评论