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操作符的主要内容,如果未能解决你的问题,请参考以下文章
如何捕获状态 - 比 BOOL 更灵活,但比 NSString 更独特