簡體   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