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