如何获取go语言函数的注释?

时间:2016-05-27 16:38:42

标签: go

如何获取go语言功能的注释? 例如:

// @annotation1
// @annotation2
func Tags() string {
        return ""
}

如何获得" @ annotation1"和" @ annotation2"?

2 个答案:

答案 0 :(得分:2)

简短回答,Golang中没有对注释的原生支持。标签可以使用什么,您可以从reflect包中获取。

所以,你在Go中没有注释,据我所知,没有提供它们的库。根据你想要做的事情,通常标签绰绰有余,你可以使用语言的力量来达到预期的效果。

应该可以实现它们,因为你可以获得文档字符串,就像PHP一样。但是,绝大多数情况下都没有必要。

编辑:

在Go中,您可以通过ast包访问结构,字段,方法,接口,函数(godoc并非神奇)的文档。但是,它需要解析文件,没有PHP中的type.getDocComments()等功能。

因此,理论上可以实现一种实现方式。但是,你所要求的那种注释根本不是Golang哲学的一部分。有很多库广泛使用标签,但没有使用注释。

答案 1 :(得分:1)

我不知道对从注释中提取特定标记的内容的任何原生支持 - 但是,godoc的内置功能确实来自与函数直接相邻的注释。如果您正在尝试构建文档,这可能很有用。

除了godoc,我知道golang plugin for IntelliJ将这些评论作为内联完成和建议的帮助/文档。

希望这有帮助!