Как получить аннотацию функции go go? Пример:Как получить аннотацию функции go go?
// @annotation1
// @annotation2
func Tags() string {
return ""
}
Как получить "@ annotation1" и "@ annotation2"?
Как получить аннотацию функции go go? Пример:Как получить аннотацию функции go go?
// @annotation1
// @annotation2
func Tags() string {
return ""
}
Как получить "@ annotation1" и "@ annotation2"?
Короткий ответ, нет никакой поддержки для аннотаций в Голанге. Что используется, если теги, которые вы можете получить из пакета reflect
.
Итак, у вас нет аннотаций в Go, и, насколько мне известно, нет библиотеки, которая их предоставляет. В зависимости от того, что вы хотите сделать, обычно тегов более чем достаточно, и вы можете использовать силу языка для достижения желаемых результатов.
Должно быть возможным реализовать их, поскольку вы можете получить строки документации, как это делает PHP. Однако в большинстве случаев это не требуется.
EDIT:
В Go, у вас есть доступ к документации, полей структур, методов, интерфейсов, функций (godoc не магическая) через ast
пакет. Однако для этого требуется разбор файлов, нет такой функции, как type.getDocComments()
, как в PHP.
Таким образом, теоретически возможна реализация. Тем не менее, аннотации, о которых вы просите, просто не являются частью философии Голанга. Существует множество библиотек, которые широко используют теги, но не используют аннотации.
Я не знаю какой-либо родной поддержки чего-то, что тянет определенные теги от комментариев - однако встроенная функциональность godoc действительно тянет из комментариев, непосредственно примыкающих к функциям. Если вы пытаетесь создать документацию, это может быть полезно.
В дополнение к godoc, я знаю, что golang plugin for IntelliJ извлекает эти комментарии в качестве справки/документации для встроенных дополнений и предложений.
Надеюсь, это поможет!
Насколько я знаю, это только комментарии, и их невозможно получить. – evanmcdonnal
Вы можете, однако, использовать пакет [ast] (https://godoc.org/go/ast). –
@ T.Claverie Я имею в виду, конечно, вы можете проанализировать исходный файл как строку и извлечь комментарии, но нет ничего формального, как использование рефлекса для получения тегов полей, как вы упомянули в своем ответе. – evanmcdonnal