当前位置:网站首页>Swift如何更灵活的使用switch...case操作符
Swift如何更灵活的使用switch...case操作符
2022-08-06 13:00:00 【大熊猫侯佩】
概览
初学者在接触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")
}
看一下运行结果:

很简单,简直小“case”,不是吗?
那么,小伙伴你们学会了吗?
边栏推荐
- 微服务架构 | 分布式事务 - [Seata]
- 解决创建虚拟机时No DEFAULT or UI configuration directive found问题
- 苏秋贵:谷歌广告投放带来的长期效益
- 软件设计原则
- Web page side IM products RainbowChat - Web v4.1 version has been released
- leetcode 105. 从前序与中序遍历序列构造二叉树
- AlexNet—论文分析及复现
- 报错:C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Indexing.cu:699: block: [9,0,0],
- rtklib-RINEX文件读取-rinex.c解析(一)
- GD32E103 USB官方库 + STM32CubeMX
猜你喜欢
随机推荐
非法字符: ‘\ufeff‘解决方案
Application Practice of Distributed Lock | Microservices apply for incremental and non-repetitive numbers
SAP 特征 Classification
vulnhub-DC-2靶机渗透记录
Learned Valley Learning Records] Super summary, share with heart | Basic usage of mongodb
解析隐式类型转换操作operator double() const,带你了解隐式转换危害有多大
一文带你弄懂 CDN 的技术原理!
哈工大博士历时半年整理的《Pytorch常用函数手册》开放下载!内含200余个函数!...
链表 | 找出并返回链表相交的起始节点 | leecode刷题笔记
LeetCode 896. Monotonic Sequences
gcc安装问题总结
SQL图解面试题:如何找到破产玩家?(交叉连接)
NAS 硬件采购配置记录
[Geek Challenge 2019] PHP 1
你对数据库与数据处理了解吗?
NAS 硬件调研
解决创建虚拟机时No DEFAULT or UI configuration directive found问题
【SSL集训DAY1】C【暴力】【数学】
NAT 网络地址转换
AVS视频编码标准的演变:20年来的创新与发展






![[TypeScript] In-depth study of TypeScript decorators](/img/c9/5246411eafe6acf84aa2cc8b3b0157.png)


