
Go-generate代码生成实战从stringer到Mock自动生成文章导语go generate是Go的代码生成工具。配合stringer、mockgen等工具可以自动生成大量样板代码。本文覆盖常用的代码生成场景。一、go:generate指令//go:generate stringer -typeStatustypeStatusintconst(StatusPending StatusiotaStatusActive StatusInactive)//go:generate mockgen -sourceuser_service.go -destinationmock/mock_user_service.gotypeUserServiceinterface{GetUser(idint)(*User,error)}二、常用生成工具# stringer: 为枚举生成String()方法goinstallgolang.org/x/tools/cmd/stringerlatest# mockgen: 生成接口Mockgoinstallgithub.com/golang/mock/mockgenlatest# wire: 依赖注入代码生成goinstallgithub.com/google/wire/cmd/wirelatest三、全文总结go generate编译期代码生成stringer枚举转字符串mockgen接口Mockwire DI代码生成。参考文献Go Blog - Generating codestringer文档google/wire文档