Swift如何更灵活的使用switch...case操作符

Posted 大熊猫侯佩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift如何更灵活的使用switch...case操作符相关的知识,希望对你有一定的参考价值。

概览

初学者在接触Swift语言中的switch…case操作符时,可能会觉得比较条件“不够灵活”。

比如,对于一些“常规”的比较操作,case可以很好的适配:

enum Size 
    case small, middle, big


let size = Size.middle

switch size 
case .small:
    print("s")
case .middle:
    print("m")
case .big:
    print("b")

这很好很强大,可是如果我们稍微改一下需求呢?

let i = 100

switch(i)
case i <= 0:
    print("small")
case i > 0:
    print("big")
default:
    print("unknown")

这时,Swift毫不留情的报错了!难道这么简单的比较判断都做不了?

非也非也!

where,where,where

其实,可以再为case操作符添加where子句,进一步约束条件。

在这里,我们需要做的就是“忽略”case,直接将比较判断放在where子句中:

let i = 100

switch(i)
case _ where i <= 0:
    print("small")
case _ where i > 0:
    print("big")
default:
    print("unknown")

看一下运行结果:

或者我们还可以将i与Range来比较,效果类似:

switch i 
case (1...):
    print("big")
case 0:
    print("zero")
default:
    print("small")

很简单,简直小“case”,不是吗?

那么,小伙伴你们学会了吗?😉

以上是关于Swift如何更灵活的使用switch...case操作符的主要内容,如果未能解决你的问题,请参考以下文章

如何这windows环境下学习swift和iOS编程

Swift语言的基础详解

从0开始学Swift笔记整理

如何捕获状态 - 比 BOOL 更灵活,但比 NSString 更独特

The Swift Programming Language 中文翻译版

swift中数组操作