如何在Go源文件中标注文件级作者姓名与邮箱信息?
Go 单源文件作者与邮箱标注方案
官方Go Doc规范确实没提供类似Java @author的专用作者标签,目前社区已经形成了通用的、不会和Go工具链冲突、作者信息可随代码永久留存的单文件级标注方案,完全满足不依赖版本控制记录的要求:
- 标注位置统一放在对应
.go文件的最顶部,紧邻package声明语句之前的普通注释块中,不要插到package声明和import语句之间,也不要放在import块之后。这个位置的注释不会影响编译,也能被Go Doc正常识别展示。 - 标注格式直接用社区约定俗成的纯文本写法就行,不需要特殊标签支持,一个文件有多个贡献者就逐行罗列,参考示例:
// Copyright 2024 项目版权持有方 // Author: 张三 <zhangsan@example.com> // Co-Author: 李四 <lisi@example.com> // 最后更新: 2024-05-20 package mymodule
- 几个实用注意点:
- 不用硬套Java风格的
@author前缀,直接写Author:/Co-Author:可读性更高,毕竟Go Doc本身不会对这类元标记做特殊解析,本质就是纯文本展示,清晰可辨就好 - 邮箱统一用尖括号包裹在姓名之后,是开源圈通用的作者信息格式,辨识度最高
- 绝对不要用
//go:开头的编译器指令格式写作者信息,会直接触发Go编译器的解析报错 - 别把作者信息统一写到包级别的
doc.go里,那是整个包的元数据,不符合单文件标注的要求,哪个文件需要标就给哪个文件单独加头注释
- 不用硬套Java风格的
- 这种标注方式是直接写在源文件里的,不管你是离线导出代码、复制代码片段、把文件脱离版本库传输,作者信息都会跟着代码走,根本不会丢。现在Go生态里绝大多数代码生成工具,比如
protoc-gen-go、各类项目脚手架,默认生成的文件头也都是这套格式,属于全社区认的事实标准。
内容的提问来源于stack exchange,提问作者k_o_
相关产品推荐
相关产品推荐

