
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 如果第二种实际上后面执行的很短,我坚决第一种。否则第二种。 |