4
我可以使用任何函數,並在其中間放置panic("don't")
,而不是在任何分支或循環內(使剩餘的函數「死」代碼),並且go編譯器將愉快地編譯和運行,而不報告作爲問題。在設計中,golang中未檢測到/報告死代碼?
任何人都知道這是否是由設計? (編譯器大聲地抱怨未使用的導入,爲什麼不使用死代碼......)自從Go 1發佈以來,他們無法現在回去改變這種行爲,他們會破壞現有的格式良好的代碼。只是想知道這是一個疏忽還是有意的。如果我認爲它必須等到Go 2(他們可以打破東西),那麼我們就應該等待。
對此的一些討論:https://groups.google.com/forum/#!topic/golang-nuts/D-mmT10VBEA – Intermernet
@Kevin你的意思是「去獸醫」,是有道理的。 (比較「go vert」http://www.urbandictionary.com/define.php?term=Go%20Vert) –
死代碼並不是一個真正的大問題,大多數情況下它並不表示像一個未使用的變量由於意外重新宣佈而未使用。 「恐慌」或「返回」很容易被發現。死代碼稍微增加了二進制大小,但比未使用的導入少得多。所以:爲什麼要花費精心編寫的死代碼檢測(可能無法捕捉到每一個死代碼)並減慢編譯速度? – Volker