如何获取围棋语言函数的注解?示例:
// @annotation1 // @annotation2 func Tags() string { return "" }
如何获取“@annotation1”和“@annotation2”?
wdebmtf21#
简短的回答是,Golang中没有对注解的原生支持。如果标签使用了什么,可以从reflect包中获得。所以,你在Go中没有注解,据我所知,没有提供注解的库。根据您想要做的事情,通常标记就足够了,您可以使用语言的强大功能来实现所需的结果。应该可以实现它们,因为您可以获得文档字符串,就像PHP一样。然而,在大多数情况下,这是不必要的。编辑:在Go中,你可以通过ast包访问结构体、字段、方法、接口、函数(godoc并不神奇)的文档。但是,它需要解析文件,没有像PHP中那样的type.getDocComments()函数。因此,实现在理论上是可能的。然而,您所要求的注解根本不是Golang哲学的一部分。有很多库广泛使用标记,但没有一个库使用注解。
reflect
ast
type.getDocComments()
92dk7w1h2#
我不知道有任何原生支持从注解中拉取特定标签的东西--然而,godoc的内置功能确实从与函数直接相邻的注解中拉取标签。如果您正在尝试构建文档,这可能很有用。除了godoc之外,我知道golang plugin for IntelliJ还将这些注解作为内联完成和建议的帮助/文档。希望这有帮助!
13z8s7eq3#
你可以看看这个digo工具作为参考。https://github.com/werbenhu/digo它通过注解实现依赖注入。
3条答案
按热度按时间wdebmtf21#
简短的回答是,Golang中没有对注解的原生支持。如果标签使用了什么,可以从
reflect
包中获得。所以,你在Go中没有注解,据我所知,没有提供注解的库。根据您想要做的事情,通常标记就足够了,您可以使用语言的强大功能来实现所需的结果。
应该可以实现它们,因为您可以获得文档字符串,就像PHP一样。然而,在大多数情况下,这是不必要的。
编辑:
在Go中,你可以通过
ast
包访问结构体、字段、方法、接口、函数(godoc并不神奇)的文档。但是,它需要解析文件,没有像PHP中那样的type.getDocComments()
函数。因此,实现在理论上是可能的。然而,您所要求的注解根本不是Golang哲学的一部分。有很多库广泛使用标记,但没有一个库使用注解。
92dk7w1h2#
我不知道有任何原生支持从注解中拉取特定标签的东西--然而,godoc的内置功能确实从与函数直接相邻的注解中拉取标签。如果您正在尝试构建文档,这可能很有用。
除了godoc之外,我知道golang plugin for IntelliJ还将这些注解作为内联完成和建议的帮助/文档。
希望这有帮助!
13z8s7eq3#
你可以看看这个digo工具作为参考。https://github.com/werbenhu/digo它通过注解实现依赖注入。