[golang]反射的用處--代碼自動生成


背景:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM