You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:18:30