Go Wiki: GoGenerateTools

go generate 只有在有可用的工具時才有用!這是一個不完整的有用程式碼生成工具列表。

  • goyacc – Go 的 Yacc。
  • stringer – 為列舉實現 fmt.Stringer 介面。
  • gostringer – 為列舉實現 fmt.GoStringer 介面。
  • jsonenums – 為列舉實現 json.Marshalerjson.Unmarshaler 介面。
  • go-syncmap - 使用包作為 sync.Map 的泛型模板生成 Go 程式碼。
  • go-syncpool - 使用包作為 sync.Pool 的泛型模板生成 Go 程式碼。
  • go-atomicvalue - 使用包作為 atomic.Value 的泛型模板生成 Go 程式碼。
  • go-nulljson - 使用包作為泛型模板生成 Go 程式碼,該模板實現了 database/sql.Scannerdatabase/sql/driver.Valuer
  • go-enum - 使用包作為泛型模板生成 Go 程式碼,該模板為列舉實現了介面 fmt.Stringer | binary | json | text | sql | yaml
  • enumer - 生成將 Go 列舉轉換為字串或從字串轉換的 Go 程式碼。
  • go-import — 執行非 Go 檔案的自動匯入。
  • gojson - 從示例 json 文件生成 go 結構定義。
  • vfsgen - 生成一個 vfsdata.go 檔案,該檔案靜態地實現了給定的虛擬檔案系統。
  • goreuse - 透過替換定義,使用包作為泛型模板生成 Go 程式碼。
  • embedfiles - 將檔案嵌入到 Go 程式碼中。
  • ragel - 狀態機編譯器
  • peachpy - 嵌入在 Python 中的 x86-64 彙編器,生成 Go 彙編
  • bundle - Bundle 建立一個適合包含在特定目標包中的源包的單原始檔版本。
  • msgp - 用於 MessagePack 的 Go 程式碼生成器
  • protobuf - protobuf
  • thriftrw - thrift
  • gogen-avro - avro
  • swagger-gen-types - 從 swagger 規範生成 go 型別
  • avo - 使用 Go 生成彙編程式碼
  • Wire - Go 的編譯時依賴注入
  • sumgen - 從和型別宣告生成介面方法實現
  • interface-extractor - 生成所需型別的介面,僅包含包內使用的方法。
  • deep-copy - 為給定型別建立深複製方法。
  • libfsm - fsm 工具包,支援(其中包括)Go 和 Go 風格的 amd64 彙編,用於匹配正則表示式
  • re2c - C、C++ 和 Go 的詞法分析器生成器
  • re2dfa - 將正則表示式轉換為有限狀態機並輸出 Go 原始碼
  • pigeon - Go 的 PEG 解析器生成器

此內容是 Go Wiki 的一部分。