GoDoc中类型绑定函数的示例函数编写问题求助
解决Go语言中类型绑定方法的示例函数显示问题
问题根源
Go对示例函数的命名有明确规范:针对类型绑定的方法,示例函数必须以Example<TypeName>_<MethodName>格式命名。你之前的两种写法都不符合规范:
- 直接写
ExampleSendNotification会被识别为独立函数的示例,但不存在同名独立函数,所以VSCode报错 - 给示例函数加接收者的写法完全不符合Go测试/示例函数的定义,工具自然无法识别
正确实现示例
1. 源文件(main.go)中的类型与方法定义
package main type Client struct { // 这里定义结构体字段,比如APIKey string } // SendNotification 发送通知的方法 func (c *Client) SendNotification(content string) error { // 方法逻辑实现 return nil }
2. 测试文件(main_test.go)中的示例函数
package main import "fmt" // ExampleClient_SendNotification Client类型SendNotification方法的示例 func ExampleClient_SendNotification() { // 先创建Client实例 client := &Client{} // 调用目标方法 err := client.SendNotification("Hello, Go Doc!") if err != nil { fmt.Printf("发送通知失败: %v\n", err) } // Output: // 如果需要验证输出,在这里写预期的控制台输出内容 }
关键规则提醒
- 示例函数必须是顶层无参数、无返回值函数,不能带接收者
- 命名严格遵循
Example<类型名>_<方法名>的格式,大小写要和类型、方法名一致 - 示例函数内部需要自行创建类型实例,再调用目标方法
- 确保测试文件和源文件属于同一个包,且示例函数名首字母大写(公开可见)
按这个写法,VSCode不会再报标识符错误,godoc也能正常显示该方法的示例内容。
内容的提问来源于stack exchange,提问作者Jadon
相关产品推荐
相关产品推荐

