1
HongJay 2017-09-08 17:06:12 +08:00
return 的 do something 不知行了吧
|
2
lowzoom 2017-09-08 17:06:13 +08:00
必须下面的好
|
3
EPr2hh6LADQWqRVH 2017-09-08 17:08:22 +08:00
if error then throw up
|
4
yulitian888 2017-09-08 17:16:36 +08:00
这个问题最大的问题,难道不是“不知如何描述”吗?
没点进来之前,看标题还以为是这样的情况: var result ; if(condition) { resdult =xxx; } else { result = yyy; } return result; ------------------------------- if(condition) { return xxx; } else { return yyy; } ----------------------------------------- 好吧,答题主,第二种好 |
5
xiaoc19 2017-09-08 17:16:37 +08:00 via iPhone
第二种,swift 可以使用 guard else 的方式
|
6
orderc 2017-09-08 17:19:17 +08:00
第二种, 错误提前返回
|
7
zhenjiachen 2017-09-08 17:21:29 +08:00
我写 golang 好多地方都是第二种。
|
8
Vindroid 2017-09-08 17:27:56 +08:00
第二种,第一种 if 里一大段,看着别扭
|
9
flyingghost 2017-09-08 17:46:07 +08:00 1
第二种。
函数头部先把参数异常、外部环境异常、内部状态异常等所有非法异常统统处理完。 接下来安安静静的专心处理函数本身的主体逻辑。 虽然看起来有点丑,但实用,清晰。 |
10
owenliang 2017-09-08 17:47:47 +08:00
我就想问,重要吗。。
|
11
Cbdy 2017-09-08 17:50:22 +08:00
go 语言已经给你答案了:先写能提前返回的
|
12
willvvvv 2017-09-08 17:50:40 +08:00
第二种优先,称之为卫语句
当出现嵌套判定时,方便梳理逻辑。 |
13
jlsk 2017-09-08 18:01:32 +08:00
我一直觉得第一种好,因为这样可以少打几个字符
|
14
ceflib 2017-09-08 18:01:37 +08:00
《重构 改善既有代码的设计》有讲
|
15
AlisaDestiny 2017-09-08 18:09:58 +08:00
第二种,嵌套可以少一层。
|
16
xiahei 2017-09-08 18:21:32 +08:00
第二种,early return,一切为了可读性。
|
17
keenwon 2017-09-08 18:27:05 +08:00
明显第二种
|
18
flowfire 2017-09-08 18:29:22 +08:00 via Android
明显卫语句减少嵌套比较好吧
而且一般卫语句 if 后面推荐不带括号 |
19
momocraft 2017-09-08 18:30:43 +08:00
第一个在你写了很多条件后会变成▶,不 scalable。
第二个就一直是■,只是长一些。 |
20
lzjV2EX 2017-09-08 18:31:21 +08:00
第二种好
|
21
simon7 2017-09-08 18:39:40 +08:00 via iPad
第二种好 第一种会变成 if 嵌套的
|
22
kn007 2017-09-08 18:41:09 +08:00
必须第二种
|
23
kn007 2017-09-08 18:41:34 +08:00
任何语言,都建议函数先写能返回的。
|
24
ChiangDi 2017-09-08 18:44:10 +08:00 via iPhone
学习了
|
25
autoxbc 2017-09-08 18:51:28 +08:00
就这个例子来说,第一种显然更好
既不用否命题判断(反直觉),也不用多写一个返回操作(啰嗦) |
26
iugo 2017-09-08 18:55:42 +08:00
我觉得要看 do something 和其他代码的对比.
如果 do something 是本函数的核心, 那就第二种. 可如果不是呢. 如果 something 只是所有事情中的一部分, 那就另说了. |
27
happywowwow 2017-09-08 19:01:28 +08:00
https://coolshell.cn/articles/17757.html
<如何重构“箭头型”代码> |
28
iyangyuan 2017-09-08 19:32:28 +08:00 via iPhone
异常则中断,规避嵌套,提高可读性,方便扩展
|
29
danielmiao 2017-09-08 19:55:03 +08:00
第二种,但是不返回,抛异常,或者用 block 语句包围。
直接返回容易造成调试困难,根本不知道程序从哪个位置退出 |
30
ypcs03 2017-09-09 00:00:59 +08:00 via Android
必须下面的好,你可以省一个 else
|
32
misaka20038numbe 2017-09-09 02:12:52 +08:00
一般是第二种,不过还是要看实际情况。
|
33
mornlight 2017-09-09 02:16:48 +08:00
提早、多用 return,边界清楚。否则以后看代码的时候一堆 else 很容易晕掉。
|
34
kaifeii 2017-09-09 02:58:18 +08:00
第一种和第二种编译结果应该是一样的,对执行没有影响。
这个选择只是对可读性的择优。 |
35
AvenirX 2017-09-09 10:11:36 +08:00 via iPhone
|
36
RorschachZZZ 2017-09-09 11:42:19 +08:00
第二种。
|
37
honeycomb 2017-09-09 19:28:52 +08:00 via Android
@flyingghost 前面先把各种可以或需要排除的问题 guard
|
38
zhx1991 2017-09-09 19:38:56 +08:00
第二种好
金字塔式的 if 嵌套让人看的绝望 |
39
RLib 2017-09-10 09:57:35 +08:00
那要看你 if 体有多大, 如果就一两句, 无所谓
|
40
liuminghao233 2017-09-10 16:58:57 +08:00
肯定第二种
|
41
Sapp 2017-09-10 18:40:54 +08:00
我是喜欢下面的,包括不用 else。
|
42
introom 2017-09-10 19:48:02 +08:00 via Android
如果第二种实际上后面执行的很短,我坚决第一种。否则第二种。
|