首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
V2EX
›
zacksz
›
全部回复第 2 页 / 共 2 页
回复总数
22
1
2
❮
❯
2021-05-23 04:20:23 +08:00
回复了
find456789
创建的主题
›
问与答
›
Swift 里的 guard 完全可以用 if 代替呀,为什么要弄个 guard 呀?
我的理解是,`guard` 是用来做前置条件检查的。
对于每个函数,大体上有个流程:先对输入进行前置条件检查,再对输入进行处理,从而进行输出。`guard` 就是用于第一步的。和 `if` 不同的是, `guard` 块中必须改变程序控制流(`return`, `break`, `continue`, `throw`)。
回到你的程序样例中,这个函数有这么些前置条件:`age` 需要是非 `Nil`,其次 `age` 需要大于 18 。因此,实现应该是这样的:
```swift
func enterBar(age: Int?) {
// 前置条件检查
guard let age = age else {
print("输入数据为空。")
return
}
guard age > 18 else {
print("你没有成年,不许进入")
return
}
// 对 输入数据进行处理
if age < 30 {
enterYoungArea()
} else {
enterSeniorArea()
}
}
```
2021-02-01 06:53:24 +08:00
回复了
LeeReamond
创建的主题
›
问与答
›
Chrome 浏览器的翻译功能,对于大量阅读文档的场景,有什么增强的方法吗?
可以试试 DeepL,翻译质量比较高的
1
2
❮
❯
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
2623 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms ·
UTC 15:25
·
PVG 23:25
·
LAX 07:25
·
JFK 10:25
Developed with
CodeLauncher
♥ Do have faith in what you're doing.