最近在寫一個自動生成api文檔的功能,用到了reflect包來給結(jié)構(gòu)體賦值,給空數(shù)組新增一個元素,這樣只要定義一個input結(jié)構(gòu)體和一個output的結(jié)構(gòu)體,并填寫一些相關(guān)tag信息,就能使用程序來生成輸入和輸出的相關(guān)文檔。

介紹

reflect包是golang中很重要的一個包,實現(xiàn)了在運行時允許程序操縱任意類型對象的功能??梢钥聪?a style="margin: 0px; padding: 0px; outline: none; color: black;">文檔簡單了解一下。

在reflect中,最重要的是Value類,只有先獲取到一個對象或者變量的Value對象后,我們才可以對這個對象或者變量進行更進一步的分析和處理。我們可以使用reflect.ValueOf()方法獲取Value對象。

var i intvalue := reflect.ValueOf(i) // 使用ValueOf()獲取到變量的Value對象type S struct {
    a string}var s S
value2 := reflect.ValueOf(s) // 使用ValueOf()獲取到結(jié)構(gòu)體的Value對象

獲取到對象或者變量的Value對象后,我們就可以對他們進一步的操作了。

1.獲取對象或者變量的類型(Value.Type()和Value.Kind())

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式