2010-04-09 16 views
8

它在每個計算機科學課程中都有教授,並且寫在許多書中,程序員不應該使用GoTo。甚至有一個關於它的漫畫xkcd。我的問題是,我們是否達到了對Eval可以說同樣的事情?應該使用Eval帶走與GoTo相同的烙印嗎?

GoTo對於程序流和可讀性​​不起作用, Eval與調試,程序執行和設計相同。

應該使用eval具有相同的恥辱爲GOTO,和相同的後果在XKCD漫畫?

+0

嗯,我當然不認爲它會有和漫畫一樣的後果......我現在已經吃了好幾次了。 – Tesserex 2010-04-09 14:59:48

+1

這是一個切線,但goto爭議是一場鬧劇。當人們愚蠢地使用它時,Goto是唯一不好的。和eval一樣。 Eval非常強大,靈活且危險。 – 2010-04-09 15:10:04

回答

7

如果有的話,它應該帶有更多的恥辱感。

GoTo通常會創建難以維護的代碼。 Eval通常會產生帶有安全漏洞的代碼 - 這更糟糕。

1

可能eval還沒有達到GoTo達到的批評水平,但肯定它的棄用!

1

有人發表「Eval認爲邪惡」的文章只是時間問題!

+1

後面是「'Eval認爲邪惡'認爲邪惡」的文章。 – bryanjonker 2010-04-09 15:15:37

+0

http://diveintomark.org/archives/2002/01/04/eval_is_evil – dan04 2010-04-11 22:23:06

2

Eval有一些相當嚴重的安全問題;如果有任何機會不受信任或用戶提供的輸入可能以eval結尾,那麼它很容易受到攻擊。

Jslint會警告在運行js代碼時使用eval()。

0

「一個媽媽的漏洞」間接涵蓋EVAL - 惡意代碼通過系統由於缺乏適當的檢查的運行。

相關問題