说白了,就是不要一个方法里面只有一个长长长长的 if 大块,而是尽早 return https://chriszou.com/2020/07/24/guard-clause/
1
gantleman 2020-07-24 15:17:06 +08:00
逻辑判断是一种条件筛选,目的是处理筛选的结果。
看不懂尽快返回这个判断标准。 也看不出两个例子的区别。 |
2
guoptr42 2020-07-24 15:33:46 +08:00
个人很喜欢这种代码风格,看到项目里面一层套一层的 if 就头大。
|
3
kop1989 2020-07-24 15:37:16 +08:00 1
说白了就是要尽量把非目标情况放在 if 里当条件。然后一旦不符合执行条件就 return,要 if return if return do something 而不要 if do something else return
|
4
SmiteChow 2020-07-24 16:23:33 +08:00
卫语句 又称 提前返回 /提前退出
|
5
Kirsk 2020-07-24 16:27:36 +08:00 via Android
重构:改善既有代码的设计
|
6
autoxbc 2020-07-24 16:46:36 +08:00 1
其实有两个流派
一个是平铺派,缩进即地狱; 一个是结构派,花括号套一切; 互相说服是很难的 平铺派用 13 寸笔记本写代码,要求函数不能超过 40 行; 结构派用 42 寸巨屏,一眼就能扫到 120 行处的 return |
8
ChrisZou OP @autoxbc 不一定是屏幕大不大的问题,下面的代码只要离开头的 if 远了,就很难一眼看出是 if 里面的还是 if 外面的。
|
9
lensko 2020-07-24 19:42:58 +08:00
不是每个程序员都会看《代码整洁之道》。
|
10
wty 2020-07-24 19:53:50 +08:00 via Android
这种写法有个问题就是容易漏掉资源释放,不过好在现在的语言多少带一些资源回收的功能了。要是像 c 语言里面 malloc free,这么写每个 return 前面要写一堆东西,还是有点头疼。。。
另外想起来个图 h 。tt 。p://cdn.en.wotype.com/wp-content/uploads/2014/07/hadouken-indent.jpg |