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

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

背景:

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.