在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标记为已读?
如何插入警告的方法呢?他们总是可以使用已弃用的方法? –