【问题标题】:Write Godoc for interface implementation by private struct type通过私有结构类型为接口实现编写 Godoc
【发布时间】:2021-07-29 19:07:06
【问题描述】:

我已经编写了一个库及其一个带有私有结构的接口实现。在 godoc 中,没有显示结构有界函数。我认为这是因为未公开的结构。但是我的功能是通过界面公开的。有什么方法可以为它创建好的 go doc 吗?还是我应该在接口减速部分解释函数的行为?

我添加了我编写的软件包的简单版本。 here 是真正的 Go 库,我需要编写好的文档。

package printer

import "fmt"

// Printer is the interface to Print anything
type Printer interface {
    // Print is a wrapper of "fmt.Println"
    Print(string)
}

type printer struct {
    prefix string
}

// Print prints the sent string with prefix
func (p *printer) Print(s string) {
    fmt.Println(p.prefix,s)
}

// NewPrinter returns a Printer with sent prefix
func NewPrinter(prefix string) Printer{
    return &printer{
        prefix: prefix,
    }
}

【问题讨论】:

  • Printer 和 NewPrinter 被导出并记录在案,而有打印机的事实是无趣的,因此不需要文档,因为它不能(直接)使用。

标签: go godoc


【解决方案1】:

如果您必须记录私有结构的方法,请在返回它的函数上方执行。一般来说,您还应该考虑在接口方法标题上方留下好的评论。 Go 不会显示用户(直接)无法访问的内容的文档,并且不够聪明,无法知道您可以通过界面访问它。

【讨论】:

  • 与其说它“不够聪明”,不如说它不可能可能知道这一点,因为结构定义没有指定它实现的接口,事实上,其他一些包可以定义一个接口,稍后它会在不改变结构的情况下实现它。
  • 对不起@Adrian,我没听明白。请您再发表评论并为我解释一下。
猜你喜欢
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
  • 2023-02-15
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多