通过与这个有关标签的问题进行类比,我注意到,除了纯注释之外,注释还有多种用途。
例子:
还有其他我想念的吗?
那里有确定的清单吗?
gocontracts和go-
swagger
等一些第三方软件包也可以使用它们。他们如何避免彼此冲突?
如前所述,注释不仅是注释,而且是指令。
撰写本文时没有确定的清单。记录为golang问题28532。
因此,我建议使用此答案来做一个。
用于go核心语言和工具本身:
第三方软件包中的显着用途
他们如何避免彼此冲突?
如果您要开发的工具确实需要将注释视为属性,并希望避免与其他类似用途发生冲突,请在注释之前添加一个名称空间,例如“ {mytool} :“
有一些有意识的命名空间尝试。内置到go中的魔术注释使用“ go:”作为“ go:generate”的前缀(除非没有)
go-swagger使用“ swagger:”
但是,您仍然需要谨慎处理此问题,并检查此处的列表或您可以找到的任何其他来源。
还应考虑使用注释是最佳方法还是唯一方法,而不是使用函数。比较例如(gocontracts):
// SomeFunc ensures:
// * !strings.HasSuffix(result, "smth")
func SomeFunc(x int) (result string) {
// ...
}
与(godbc)
func SomeFunc(x int) (result string) {
godbc.Require(strings.HasSuffix(result,"smth");
}
问题内容: 使用这些批注的重点是要独立于数据库提供程序,而不是重新生成JAR存档。 如果我坚持不懈,那么我首先看不到使用hibernate的意义。如果确实决定切换到其他数据库提供程序,则必须修改类中的注释,然后重新编译应用程序。 问题答案: @Table 批注:@Table批注允许您指定用于将实体保留在数据库中的表的详细信息。 @Table批注提供了四个属性,使您可以覆盖表的名称,目录和架构,并对
问题内容: Hibernate文档具有以下有关注释的信息: 在纯Java API中,未定义时间的时间精度。处理时态数据时,您可能需要描述数据库中的预期精度。时间数据可以具有DATE,TIME或TIMESTAMP精度(即实际日期,仅时间或两者兼有)。使用@Temporal批注进行微调。 什么意思 什么是数据及其精度?如何调整? 问题答案: 必须为类型为和的持久字段或属性指定此注释。只能为这些类型的字
Hibernate文档包含以下注释的信息: 在普通的JavaAPI中,时间的时间精度没有定义。在处理时态数据时,可能需要描述数据库中的预期精度。时态数据可以具有日期、时间或时间戳精度(即实际日期、仅时间或两者)。使用@Temporal注释对其进行微调。 是什么意思?什么是数据及其精度?它如何微调?
问题内容: 我有2个实体,如“父对子”和“一对多”关系 因此,这里 @LazyCollection(LazyCollectionOption.EXTRA)的 用途是什么,它将何时出现在图片中,例如对哪个带有子列表的操作有好处? 问题答案: 为了给您一个提示,主要是出于性能方面的考虑,您可以开始阅读以下链接: 二级缓存 休眠文档
在我的项目代码库中,我看到许多地方使用了生成的注释。当我通读这些文件时,它说明了以下内容。 Lombok最终会自动将此注释添加到所有生成的构造函数、方法、字段和类型中。 根据文档,Lombok会自动为生成的代码添加注释。除此之外,不会生成任何像或这样的代码。我看不出使用它的理由。 我错过什么了吗?
主要内容:godoc 工具注释在程序中的作用是对程序进行注解和说明,便于对源码的阅读。编译系统在对源代码进行编译时会自动忽略注释的部分,因此注释对于程序的功能实现不起任何作用。在源码中适当地添加注释,能够提高源码的可读性。 Go语言的注释主要分成两类,分别是单行注释和多行注释。 单行注释简称行注释,是最常见的注释形式,可以在任何地方使用以开头的单行注释; 多行注释简称块注释,以开头,并以结尾,且不可以嵌套使用,多行注释一般