※ 引述《workworkwork (Miyada vv)》之铭言:
: 有时为了避免太多层出现===>
: if(a)
: {
: //do a things
: if(b)
: {
: //do b things
: if(c)
: {
: //do c things
: }
: }
: }
本鲁蛇的做法
main
{
if(a)
doA();
}
function doA()
{
if(b)
doB();
}
function doB()
{
if(c)
doC();
}
function doC()
{
...
}
请问这样可以吗?
作者:
donvito (CryFather)
2014-09-07 21:19:00XDDD
作者:
robler (章鱼丸)
2014-09-07 21:23:00你真是菁英中的菁英
clarkman的建议 XDDDDDDDDDDDDD
作者:
a7904120 (pubear)
2014-09-07 21:31:00那我宁愿看好几层if....
这样的话倒不如回归原始,在main里if(a)else if(b)elseelse if(c),维护的人还比较容易看
如果doAthings只有0~1行 看起来是有些蠢 如果很多行那拆三个函式依条件处理三个阶段的事 应该还好
回Ayukawayen:是维护的人辛苦,第一次看没看到的话容易漏
0行可以用and,1行不降阶的话 巢状循环还是巢状循环
作者:
dinos (守护神)
2014-09-07 21:42:00clarkman 的建议掷地有声啊!
作者:
liteon 2014-09-07 21:49:00这篇跟之前那个 int xx, int xxx, int xxxx 有异曲同工 XD保证后面接的人会High到翻天 XDDD
作者:
mrforget (财去人安乐)
2014-09-07 21:57:00clarkman让我红茶喷出来 XDXD
作者:
rodion (r-kan/reminder)
2014-09-07 22:43:00用guard condition就可以再省掉一个scope 我觉得会更简洁
作者:
hsinhw (Q____Q)
2014-09-07 22:49:00维护的人会很HIGH
不觉得这样做的话 想function名称很烦吗XD
作者:
ppc ( )
2014-09-08 00:26:00XD
其实只要有下region, 就算多于一行也很容易看的.
我意思就是指有时提炼出独立的function会很难命名
作者:
TSbb (贷款三十年债开始)
2014-09-08 22:04:00XDDDD
作者: psliurt (反指标) 2014-09-08 22:16:00
很想笑XD,但林北维护的专案中,这情况更甚之
作者: alex70266 (小眼) 2014-09-08 22:23:00
XDDDDDDDDDDDDDDDDD
呃...你不觉得这case把doA doB拉出来很难说清楚职责吗
作者:
a47135 (金属史莱姆)
2014-09-09 12:54:00人才XDDDDDDDD
作者: onionys (Why?Why?) 2014-09-09 21:05:00
这就是我常常听人讲的~专业!