[golang]自動生成範式(模板)程式
在 Golang 中,自動生成範式(模板)程式的方式有幾種,取決於你的需求,例如: 使用 go generate (標準方式) 使用 text/template 或 html/template (基於模板的生成) 使用 go:embed (嵌入模板文件) 使用代碼生成工具 (如 stringer 、 gomock 、 ent 等) 使用 AI/LLM 工具 (生成重複性較高的程式碼) 1. 使用 go generate 自動生成程式碼 go generate 是 Go 內建的生成工具,允許在程式中自動執行命令來生成代碼。 範例:生成 Getter 方法 假設我們有一個 Person 結構體,我們想自動生成 GetName() 和 GetAge() 方法。 步驟 1:建立 person.go //go:generate go run gen_person.go package main type Person struct { Name string Age int } 步驟 2:建立 gen_person.go 來生成程式碼 package main import ( "fmt" "os" ) func main () { code := `package main func (p *Person) GetName() string { return p.Name } func (p *Person) GetAge() int { return p.Age } ` err := os.WriteFile( "person_gen.go" , [] byte (code), 0644 ) if err != nil { fmt.Println( "Error writing file:" , err) } } 步驟 3:執行 go generate go generate ./... 執行後,會生成 person_gen.go ,內容如下: package main func (p *Person) GetName() string { return p.Name } ...