このリポジトリは以下のQiitaの記事ののために作成したサンプルです。
実際にコード生成ができる状態にしてありますので、クローンして実際にコード自動生成を試してみてください。
以下のコマンドを実行するとコードを自動生成します。
go generate gen/genmethods.go
上記を実行すると、pkg
パッケージ配下にある構造体(typeで型定義したもののみ)を探し出し、その構造体にPrintType
メソッドを追加するコードを生成します。
生成したコードはpkg/method_gen.go
に出力されます。既存のpkg/method_gen.go
を消したり、構造体を増やしたりした状態でコードを自動生成してみてください。
以下でサンプルプログラムを実行可能です。自動生成したメソッドを呼ぶだけのプログラムです。
go run cmd/main.go