生成的 go 文件的名称
Name for a generated go file
我正在生成一个 Go 文件(以包含构建版本等常量),以便这些常量可以在其他包中使用。我创建了一个小工具,可以用 go generate
创建文件,但我正在尝试想一个合适的名称,以便
很明显它是生成的,所以如果它丢失(在构建时),用户就会知道 运行 go generate
然后我可以将文件添加到 .gitignore
我的第一个猜测是 version_GENERATED.go
有什么我应该注意的约定或更好的建议吗?
在文件名中添加像 _GENERATED
这样的后缀在生成文件之前不会包含任何信息,因为编译器只会给你 "unrelated" 错误,比如 "undefined: xxx"
(编译器不会猜测标识符是否存在,它会在 version_GENERATED.go
).
中
例如,stringer
生成器生成名称为 type_string.go
的文件,其中 type 替换为为其生成的类型的名称。
所以我认为只要在文件名后面加上 general guidelines 就足够了,除了可以使用 _gen
或 _generated
后缀。或者,如果您的工具是 public 并且也被其他人使用,则使用工具的名称作为后缀(就像 stringer
一样)。
如果您确实希望用户在您的生成器尚未成为 运行 的情况下收到多话的错误消息,您的生成器可能会生成一个导出常量,如果包含在错误消息中,其名称是多话的,例如:
const MustRunStringerGenerator = 0
在你的程序中这样引用它:
var _ = MustRunStringerGenerator // Test if stringer has been run
如果 stringer
尚未 运行,您将看到一条错误消息:
undefined: MustRunStringerGenerator
我正在生成一个 Go 文件(以包含构建版本等常量),以便这些常量可以在其他包中使用。我创建了一个小工具,可以用 go generate
创建文件,但我正在尝试想一个合适的名称,以便
很明显它是生成的,所以如果它丢失(在构建时),用户就会知道 运行
go generate
然后我可以将文件添加到 .gitignore
我的第一个猜测是 version_GENERATED.go
有什么我应该注意的约定或更好的建议吗?
在文件名中添加像 _GENERATED
这样的后缀在生成文件之前不会包含任何信息,因为编译器只会给你 "unrelated" 错误,比如 "undefined: xxx"
(编译器不会猜测标识符是否存在,它会在 version_GENERATED.go
).
例如,stringer
生成器生成名称为 type_string.go
的文件,其中 type 替换为为其生成的类型的名称。
所以我认为只要在文件名后面加上 general guidelines 就足够了,除了可以使用 _gen
或 _generated
后缀。或者,如果您的工具是 public 并且也被其他人使用,则使用工具的名称作为后缀(就像 stringer
一样)。
如果您确实希望用户在您的生成器尚未成为 运行 的情况下收到多话的错误消息,您的生成器可能会生成一个导出常量,如果包含在错误消息中,其名称是多话的,例如:
const MustRunStringerGenerator = 0
在你的程序中这样引用它:
var _ = MustRunStringerGenerator // Test if stringer has been run
如果 stringer
尚未 运行,您将看到一条错误消息:
undefined: MustRunStringerGenerator