go标准example函数需以example开头、调用被测函数并添加// output:注释;应明确提示函数名、输入输出及签名,或基于已有定义自动推导,还可分步生成多场景变体。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您需要为Go函数生成符合标准测试规范的示例函数(Example function),以供go doc展示和go test验证,则可能是由于未明确指定Example命名规则或缺少包级上下文导致CodeGeeX输出非预期代码。以下是解决此问题的步骤:
一、使用结构化自然语言提示生成标准Example函数
Go语言要求Example函数名必须以Example开头,后接被测函数或类型名称(如ExampleAdd、ExampleUser_String),且需在函数末尾调用output注释标记输出结果,才能被go test -run=Example识别并执行。CodeGeeX需通过精确提示词激活该模式。
1、在CodeGeeX插件输入框或编辑器中,键入如下提示:“用Go写一个Example函数,用于演示名为ReverseString的字符串反转函数,输入为'hello',期望输出为'olleh',并在函数末尾添加// Output: olleh注释”。
2、确保提示中包含被测函数签名或已有定义上下文,例如追加:“ReverseString函数定义为func ReverseString(s string) string { ... }”。
3、触发生成后,检查输出是否符合格式:func ExampleReverseString() { fmt.Println(ReverseString("hello")) // Output: olleh }。
二、基于已有函数定义自动推导Example签名与用例
当项目中已存在待测函数时,CodeGeeX可依据其签名自动生成语义合理、边界覆盖的Example函数,避免手动构造输入输出。该方式依赖对函数参数类型、返回值及常见用例模式的理解。
1、在VS Code中打开含目标函数的.go文件,将光标置于该函数定义下方空行处。
2、输入注释行:// Example for AddInts,其中AddInts为待测函数名。
3、触发CodeGeeX补全,确认生成代码是否包含调用AddInts(2, 3)及对应// Output: 5注释,并位于package作用域内、无参数无返回值。
三、结合Go文档规范生成多场景Example函数
单一Example不足以体现函数在不同输入下的行为,Go官方推荐为同一函数提供多个Example变体(如ExampleAddInts、ExampleAddInts_Negative)。CodeGeeX可通过分步提示生成覆盖典型、边界、错误场景的示例集。
CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。
1、首轮提示:“生成ExampleAddInts函数,调用AddInts(0, 0),输出0”。
2、第二轮提示:“生成ExampleAddInts_Negative函数,调用AddInts(-5, 3),输出-2”。
3、第三轮提示:“生成ExampleAddInts_Large函数,调用AddInts(1
四、强制注入go:embed或testutil依赖的Example生成
部分Example需读取嵌入文件或使用testing.T辅助功能(如ExampleTemplate_Execute),此时需在提示中显式声明依赖项,否则CodeGeeX可能忽略import或生成不可编译代码。
1、输入提示:“用Go写一个ExampleTemplate_Execute函数,使用text/template包定义模板'Hello {{.Name}}',传入map[string]string{'Name': 'World'},打印渲染结果;要求导入\"text/template\"和\"os\"包”。
2、检查生成代码是否包含import ("os" "text/template"),且函数体内有t := template.Must(template.New("").Parse(...))及t.Execute(os.Stdout, data)调用。
3、确认末尾存在// Output: Hello World注释,且无额外换行或空格干扰匹配。
五、修复CodeGeeX生成Example时常见的格式错误
CodeGeeX偶发生成不符合go tool约束的Example函数,例如遗漏// Output注释、函数名大小写不匹配、或误加参数。这些错误会导致go test -run=Example静默跳过或报错。需针对性修正提示结构。
1、若生成函数无// Output行,在提示末尾追加:“必须在函数最后一行添加// Output: 后接确切输出内容,不可省略,不可含多余空格”。
2、若函数名错误(如生成为exampleAdd而非ExampleAdd),在提示开头强调:“函数名必须严格以大写Example开头,后接驼峰式被测函数名,首字母大写”。
3、若生成代码含func ExampleAdd(a, b int) int等带参数/返回值形式,立即追加纠正指令:“Example函数不得有任何参数和返回值,仅用于演示,必须符合func ExampleXxx()格式”。










