※ 引述《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
這就是我常常聽人講的~專業!