Go Wiki:GoGenerateTools
go generate
仅在您有工具可与之配合使用时才有用!以下是可生成代码的有用工具的不完整列表。
- goyacc – Go 的 Yacc。
- stringer – 为枚举实现
fmt.Stringer
接口。 - gostringer – 为枚举实现
fmt.GoStringer
接口。 - jsonenums – 为枚举实现
json.Marshaler
和json.Unmarshaler
接口。 - go-syncmap - 使用一个软件包作为
sync.Map
的通用模板来生成 Go 代码。 - go-syncpool - 使用包作为
sync.Pool
的通用模板生成 Go 代码。 - go-atomicvalue - 使用包作为
atomic.Value
的通用模板生成 Go 代码。 - go-nulljson - 使用包作为通用模板生成 Go 代码,该模板实现了
database/sql.Scanner
和database/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 的一部分。