這是一篇翻譯, 英文原文在此:https://news.ycombinator.com/item?id=13664127
在一個(gè)很遠(yuǎn)很遠(yuǎn)的星系里,有一個(gè)王國崇裁。那里的人們不知道結(jié)構(gòu)化編程巴比。他們的編程語言中只有分支和跳轉(zhuǎn)(俗稱GOTO)稼病。
那里流傳著一本圣經(jīng):《GOTO設(shè)計(jì)模式》
下面是這本書上的幾個(gè)例子:
IF 模式:如果你只想在某種情況下才執(zhí)行一段代碼,你就寫一個(gè)有條件的GOTO到那段代碼的后面竟贯。
IF-ELSE 模式:如果你想在某種情況為真的情況下執(zhí)行一段代碼,為假的時(shí)候執(zhí)行另一段代碼逝钥,使用此模式屑那。這個(gè)模式和IF模式很像,不同的是,要在那段真代碼后面持际,加一個(gè)無條件跳轉(zhuǎn)沃琅,越過假代碼。
WHILE 模式:如果你想要重復(fù)的執(zhí)行一段代碼选酗,同時(shí)在執(zhí)行完畢這段代碼后檢查某個(gè)條件阵难,你在這段代碼后面加一個(gè)有條件跳轉(zhuǎn)到這段代碼的最前面。
BREAK 模式:這個(gè)模式僅和WHILE模式和UNTIL模式配套使用芒填。如果你需要呜叫,在某種情況時(shí),在一段代碼的中間停止代碼的執(zhí)行殿衰,你在那里添加一個(gè)有條件跳轉(zhuǎn)朱庆,到這段代碼的末尾。
每個(gè)人都很喜歡這本書闷祥。自從這本書出現(xiàn)娱颊,那些雜亂無章的GOTO就都不見了。年輕人都熟讀這本書凯砍,以使用里面的模式為能事箱硕。更妙的是,大家也可以互相理解彼此的代碼了悟衩。因?yàn)樗腥硕颊J(rèn)得那些模式剧罩,互相談?wù)摰臅r(shí)候,也能理解彼此口中的名詞座泳。
有一天惠昔,王國里來了一位旅行者。這位旅行者來自另外一個(gè)世界挑势。他看到了這本書镇防,很快就發(fā)問道:“為什么不把這些模式添加到你們的計(jì)算機(jī)語言中呢?這些優(yōu)秀的抽象本該獲得更高的地位潮饱,而你們也會(huì)因此獲得更大的助益来氧。”
但不幸的是香拉,他因?yàn)橐C瀆罪被處死了饲漾。