如何在Go中将代码标记为已弃用?

Mat*_*yer 21 go

在Go中,如何将代码标记为已弃用,以便用户在使用时收到警告?

Cer*_*món 44

Godoc:记录Go代码说这是关于将代码标记为已弃用:

要表示不应使用标识符,请在其文档注释中添加一个段落,该段落以"已弃用:"开头,后跟一些有关弃用的信息.

有一个golint问题用于报告使用已弃用的标识符godoc问题来浏览或隐藏已弃用的标识符.

staticcheck工具报告使用过时的标识符(见SA1019)的.

  • 这是正确的做法,应标记为答案。从 Go 1.6 开始,您可以看到 Go 团队在 `jpeg/Reader` 中使用此模式: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 通常不会出现在文档中,除非您传递该标志和选项。 (3认同)

GoH*_*ble 17

将此注释添加到您的函数/结构中:

// Deprecated: FunctionName is deprecated.
Run Code Online (Sandbox Code Playgroud)

  • 在 GoLand 中工作,IDE 以删除线样式显示字段名称。另外,一个简单的“//已弃用”注释定义之前或同一行的行对我有用。 (4认同)

小智 -5

Go 编译器不支持此功能(5g/6g/8g 和 gccgo 均不支持)。

据我所知,目前还没有这方面的代码检查工具。

唯一的方法是将弃用警告放入文档中,或者干脆删除代码。