在Go中,您如何將代碼標記爲已棄用,以便用戶在使用時獲得警告?如何在Go中將代碼標記爲已棄用?
回答
您可以創建一個名爲old/yourpackage
的包,如果有人依賴於已棄用的功能/接口,並在沒有舊東西的情況下創建更新包yourpackage
,則建議使用該包。
無法插入警告或標記方法,因爲它們可能以不同於文檔中的方式使用。
在Go編譯器中沒有這方面的支持(在5g/6g/8g和gccgo中都沒有)。
據我所知,目前還沒有代碼檢查工具。
唯一的方法是將棄用警告置於文檔中,或者直接刪除代碼。
你也可以打印一行到stdout/stderr,說「這個方法已被棄用!」每次調用已棄用的方法時。您還可以提供關於用戶如何改正這一點的提示。
請不要將任何內容直接打印到庫中的stderr或stdout中,以用於*任何*原因。而棄用註釋只屬於庫中,否則可以簡單地刪除代碼。 –
Go編譯器不會報告警告,只會報告阻止編譯 的錯誤。
Godoc: documenting Go code說,這大約爲廢棄的標記代碼:
要通知該標識符不應該使用,添加段落到開頭文檔註釋「已過時」隨後是關於棄用的一些信息。
有一個golint issue for reporting use of deprecated identifiers和godoc issue通過或隱藏不贊成使用的標識符。
staticcheck工具報告使用不推薦使用的標識符(請參閱SA1019)。
這是正確的做法,應標記爲答案。從Go 1.6開始,您可以使用帶有jpeg/Reader的模式查看Go團隊:https://golang.org/src/image/jpeg/reader.go?s = 2840:2891#L83稍後,分析工具例如'godoc'和'golint'可以被更新來檢測這個,就像它處理'Bug'文檔定義一樣:https://godoc.org/golang.org/x/tools/cmd/godoc(參見' -notes'選項)。 BUGS和TODO通常不會出現在文檔中,除非您通過該標誌和選項。 – eduncan911
這些天'staticcheck'存在,並將執行此檢查,因爲'SA1019' –
- 1. 如何將Perl代碼標記爲已棄用?
- 2. 如何在Ruby中將類標記爲已棄用?
- 3. 爲什麼Cursor.requery()標記爲「已棄用」?
- 4. CCMutableArray已棄用,如何更改代碼
- 5. 類'org.springframework.boot.autoconfigure.web.HttpMapperProperties'被標記爲已棄用?
- 6. 爲什麼在iOS SDK 6中kAUVoiceIOProperty_VoiceProcessingQuality標記爲「已棄用」?
- 7. 如何將Qt中的某些東西標記爲過時(已棄用)?
- 8. Swift將使用已棄用的函數標記爲錯誤
- 9. AVAudioSession AudioSessionSetProperty在iOS 7中已棄用,如何更新代碼?
- 10. Visual Studio將代碼標記爲代碼
- 11. C++將枚舉值標記爲已棄用?
- 12. 將本地方法標記爲已棄用/過時?
- 13. 源代碼樹標記爲已修改
- 14. 標記屬性在目標C中已棄用目標C
- 15. JsonObjectContract.ParametrizedConstructor標記爲已廢棄且無替代
- 16. 如何在gridview中將記錄標記爲已讀和未讀
- 17. 已棄用JAXB標記元素
- 18. 將一個無主的類型標記爲已棄用或已過時
- 19. 爲什麼屬性「sonar.profile」被標記爲已棄用?
- 20. 已棄用主要Facebook洞察指標 - 替代品未記錄?
- 21. 已棄用Android狀態欄代碼
- 22. 如何使用Composer將代碼標記爲穩定?
- 23. 如何在C#中將特定參數標記爲過時/棄用?
- 24. MonoTouch - 將代碼簽名標識設置爲不代碼標記
- 25. 如何在RAML中將REST服務標記爲已過時
- 26. 如何在GitHub中將拉取請求標記爲「已審覈」?
- 27. Eclipse將行標記爲死代碼
- 28. 標記爲已棄用的第三方類
- 29. 如何使用jQuery在代碼標記內添加預標記?
- 30. 如何使用Pop3標記爲已讀?
如何插入警告的方法呢?他們總是可以使用已棄用的方法? –