繁体   English   中英

生成的go文件的名称

[英]Name for a generated go file

我正在生成一个Go文件(包括诸如构建版本之类的常量等),以便常量可以在其他包中使用。 我有一个创建了一个小工具,它将使用go generate创建文件,但我正在尝试考虑一个合适的名称

  • 很明显它是生成的,所以如果它缺失(在构建时),则用户知道运行go generate

  • 然后我可以将文件添加到.gitignore

我的第一个猜测是像version_GENERATED.go

我应该注意的任何约定或更好的建议?

在生成文件之前,在文件名中加上像_GENERATED这样的后缀不会保留任何信息,因为编译器只会给你“无关”错误,如"undefined: xxx" (编译器不会猜测,如果标识符会存在,它将在version_GENERATED.go )。

例如, stringer发生器产生具有名称的文件type_string.go其中类型被替换为它是为生成的类型的名称。

所以我认为仅仅遵循文件名的一般准则就足够了,除非使用_gen_generated后缀。 或者,如果您的工具是公开的并且也被其他人使用,则使用工具的名称作为后缀(如stringer一样)。

如果您确实希望用户在生成器尚未运行时收到健谈错误消息,则生成器可能会生成一个导出的常量,如果包含在错误消息中,该常量的名称是健谈的,例如:

const MustRunStringerGenerator = 0

在你的程序中,请参考它:

var _ = MustRunStringerGenerator // Test if stringer has been run

如果stringer尚未运行,您将看到一条错误消息:

undefined: MustRunStringerGenerator

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM