通过与这个关于标签的问题进行类比,我注意到评论的多种用途超出了纯粹的评论。
例子:
还有其他我错过的吗?
有没有明确的清单?
一些第三方软件包(例如gocontracts和go-swagger)也使用它们。他们怎样才能避免彼此冲突呢?
如前所述,注释是 go 中的指令,而不仅仅是注释。
在撰写本文时,还没有明确的清单。这被记录为golang 问题 28532。
因此我建议用这个答案来做一个。
在 go 核心语言和工具本身中的用途:
在第三方软件包中的显着用途
他们怎样才能避免彼此冲突呢?
如果您正在开发一个确实需要将注释视为属性的工具,并且希望避免与其他类似用途发生冲突,请在您的注释前添加诸如“ { mytool} : ”之类的名称空间
在命名空间方面有一些有意识的尝试。go 中内置的魔法注释使用“go:”前缀,如“go:generate”(除非不使用)
go-swagger 使用“swagger:”
但是,您仍然需要谨慎对待这个问题,并检查此处的列表或您可以找到的任何其他来源。
还要考虑注释是否是最好的或唯一的方法,而不是使用函数。例如比较(gocontracts):
// SomeFunc ensures:
// * !strings.HasSuffix(result, "smth")
func SomeFunc(x int) (result string) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
与 ( godbc )
func SomeFunc(x int) (result string) {
godbc.Require(strings.HasSuffix(result,"smth");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2421 次 |
最近记录: |