【问题标题】:How do you mark code as deprecated in Go?如何在 Go 中将代码标记为已弃用?
【发布时间】:2022-02-04 03:35:36
【问题描述】:

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

【问题讨论】:

    标签: go


    【解决方案1】:

    Godoc: documenting Go code 表示将代码标记为已弃用:

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

    文档站点pkg.go.dev 在单击“显示”按钮后隐藏了已弃用标识符的文档。

    staticcheck 工具报告使用了已弃用的标识符(请参阅 SA1019)。

    有一个golint issue for reporting use of deprecated identifiers

    【讨论】:

    • 这是正确的做法,应该标记为答案。从 Go 1.6 开始,您可以看到 Go 团队在 jpeg/Reader 中使用此模式:golang.org/src/image/jpeg/reader.go?s=2840:2891#L83 稍后,可以更新诸如 godocgolint 之类的分析器工具来检测这种情况,就像使用 Bug 一样文档定义:godoc.org/golang.org/x/tools/cmd/godoc(参见-notes 选项)。 BUGS 和 TODO 通常不会出现在文档中,除非您传递该标志和选项。
    • 这些天 staticcheck 存在并将执行此检查,如 SA1019
    【解决方案2】:

    将此注释添加到您的函数/结构 // 已弃用:FunctionName 已弃用。

    【讨论】:

    • 在 GoLand 中工作,IDE 以删除线样式显示字段名。一个简单的// deprecated 注释前面的行或定义的同一行对我有用。
    【解决方案3】:

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

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

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

    【讨论】:

    • 插入警告的方法怎么样?他们总是可以使用已弃用的方法吗?
    【解决方案4】:

    您也可以在 stdout / stderr 上打印一行,说“此方法已弃用!”每次调用不推荐使用的方法时。您还可以包含有关用户应如何更正此问题的提示。

    【讨论】:

    • 请不要出于任何原因将任何内容从库中直接打印到标准错误或标准输出。并且弃用注释只属于库,否则可以简单地删除代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2016-10-22
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多