Problem

我已经在*_test.go文件中编写了一些示例函数,以帮助澄清独立公共函数的上下文,而不会出现问题.在为绑定到类型的函数编写示例函数时,会出现显示问题.

Example

这是我所遇到的一个基本例子.

假设我们在Main中有一个函数.如下所示:

type Client struct {
  user string
  ip string
}

func (c *Client) SendNotification(message string) error {
  return nil
}

我想在main_test.go中为这样的函数创建一个示例函数,如下所示

func ExampleSendNotification() {
  //Showoff code here
}

VSCode为该特定示例抛出错误,指出"ExampleSendNotify引用未知的标识符:SendNotification".此外,在运行godoc时,它也不会出现在示例中.

我也try 过这种形式:

func (c *Client) ExampleSendNotification() {
  //Showoff code here
}

但随后它只是将其作为VSCode中的一个测试删除,并且不会出现

推荐答案

就在我写完这篇文章的时候,我找到了答案.我想我还是会为其他人发帖.

诀窍是编写示例[Type]_[方法],因此实际上在我的示例中,它将如下所示:

func ExampleClient_SendNotification() {
  //Showoff code here
}

Go相关问答推荐

VS代码,Golang格式顽固的情况与switch / case

在保留额外参数的同时解封YAML

链自定义GRPC客户端拦截器/DialOptions

如何将GoFr筛选器用于查询参数?

使用一元或服务器流将切片从GRPC服务器返回到客户端

GO:如何指定类型约束,使S方法的参数类型与接收方的参数类型相同

为什么没有正确生成这些元组?

如何模拟go的Elastic search SDK?

在 Go sync.Map 中,为什么这部分实现不一致或者我误解了什么?

如何使用 go-git 将特定分支推送到远程

Golang:如何判断通过缓冲通道进行通信时生产者或消费者是否较慢?

Golang模板无法访问embedFS中的文件

在 Go 中发送 ack 和 term 后消息仍在 nats 限制队列中

使用 AppID 在 Windows 中启动应用程序并获取 pid

使用 delve 在容器中调试 Golang:container_linux.go:380:启动容器进程导致:exec:/dlv:stat /dlv:没有这样的文件或目录

如何在 Windows 中使用 github.com/AllenDang/giu 和 github.com/gordonklaus/portaudio 构建 GO 程序

go mod tidy 错误消息:但是 go 1.16 会 Select

关于GO的几个问题

Go 错误:cannot use generic type without instantiation

如何在 Go 中使用 RSA 密钥加密和解密纯文本?