背景:
go語言處理db、json的時候,具體代碼的變量定義和db字段、json輸出的時候可能不一樣。
這個時候,我們需要用tag的方式來進行定義。
例如:
type MyStruct struct { Name string `json:"name"` MaxHeight int `json:"max_height"` }
如果字段或結構體非常多的話,有十幾二十幾個,就非常的麻煩。
因此,就利用golang的反射,做了一個小工具來自動生成,具體使用如下:
//你的結構體定義 type MyStruct struct { Name string MaxHeight int } var s MyStruct //為結構體中的變量,生成json的tag //把單詞用下划線連接(通過大寫字母來區分) fmt.Prinln( tool.ProduceStructTag(s, "json"))
這樣就會得到最上面帶tag的代碼。
這個工具可以進一步改進,根據自生的框架做通用的代碼生成。定義好結構體和接口,然后 duang 的一下生成代碼,只需要寫業務邏輯了。
具體實現參考:https://github.com/AsGz/tools/blob/master/produce_struct_tag.go