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