TLDR:golang中是否有辦法(即使它有點不標準),「毒化」功能或完全導入某個包裝。中毒中的包裝/功能
更長的版本:我正在編寫一個節儉服務,所有面向公共職能的函數都返回結果,或者在thrift文件中聲明的某種類型的錯誤。該代碼生成器,這樣的界面生成代碼:
publicFacingFunc(...) (returnType, error)
這將是巨大的,直到有人我一起工作決定檢查其他疾病時,以及當條件不滿足做這樣的事情:
if conditionIsNotMet {
return nil, errors.New(...)
}
代碼編譯,但是當錯誤出現時,收到的消息是無證的隨機字符串。所以在這些文件中,我想阻止使用「錯誤」和「fmt」包。
是的,我試過了,仍然在文件頂部發出了一個警告,但似乎沒有人讀過。
順便說一句,公共錯誤都有各自的「構造函數」,這是這些文件的外部,只有那些應該使用,在我的情況。
雖然這對我的情況來說已經足夠了,但值得注意的是,go允許多次導入同一個包,從而繞過這個方案,有點容易。除了審查,以防止某人在另一行上重新聲明「_」錯誤「爲」錯誤「 –