最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang 如何通過反射創(chuàng)建新對象

 更新時間:2021年04月28日 14:58:37   作者:RuoiseHone  
這篇文章主要介紹了golang 通過反射創(chuàng)建新對象的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

廢話少說,直接貼代碼~

type A struct {
 Name string
}
 
// 測試unit
func TestReflect(t *testing.T)  {
 reflectNew((*A)(nil))
}
 
//反射創(chuàng)建新對象。
func reflectNew(target interface{})  {
 if target == nil {
  fmt.Println("參數(shù)不能未空")
  return
 }
 
 t := reflect.TypeOf(target)
 if t.Kind() == reflect.Ptr { //指針類型獲取真正type需要調(diào)用Elem
 t = t.Elem()
 }
 
 newStruc := reflect.New(t)// 調(diào)用反射創(chuàng)建對象
 newStruc.Elem().FieldByName("Name").SetString("Lily") //設(shè)置值
 
 newVal := newStruc.Elem().FieldByName("Name") //獲取值
 fmt.Println(newVal.String())
}

補充:Go語言中創(chuàng)建對象的幾種方式

對于Go對象

type Car struct {
    color string
    size  string
}

方式一:

使用T{…}方式,結(jié)果為值類型

c := Car{}

方式二:

使用new的方式,結(jié)果為指針類型

c1 := new(Car)

方式三:

使用&方式,結(jié)果為指針類型

c2 := &Car{}

以下為創(chuàng)建并初始化

c3 := &Car{"紅色", "1.2L"}
c4 := &Car{color: "紅色"}
c5 := Car{color: "紅色"}

構(gòu)造函數(shù):

在Go語言中沒有構(gòu)造函數(shù)的概念,對象的創(chuàng)建通常交由一個全局的創(chuàng)建函數(shù)來完成,以 NewXXX 來命名,表示“構(gòu)造函數(shù)” :

func NewCar(color,size string)*Car  {
    return &Car{color,size}
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 并發(fā)安全本地化存儲go-cache讀寫鎖實現(xiàn)多協(xié)程并發(fā)訪問

    并發(fā)安全本地化存儲go-cache讀寫鎖實現(xiàn)多協(xié)程并發(fā)訪問

    這篇文章主要介紹了并發(fā)安全本地化存儲go-cache讀寫鎖實現(xiàn)多協(xié)程并發(fā)訪問,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Go 語言單例模式示例詳解

    Go 語言單例模式示例詳解

    這篇文章主要為大家介紹了Go 語言單例模式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • golang 數(shù)組隨機排序的實現(xiàn)

    golang 數(shù)組隨機排序的實現(xiàn)

    本文主要介紹了golang 數(shù)組隨機排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • gorm FirstOrCreate和受影響的行數(shù)實例

    gorm FirstOrCreate和受影響的行數(shù)實例

    這篇文章主要介紹了gorm FirstOrCreate和受影響的行數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • GoLang中panic和recover作用詳解

    GoLang中panic和recover作用詳解

    panic?和?recover?是?Go?語言中用于處理異常和錯誤的機制,能夠幫助我們應(yīng)對意外情況并使程序更加健壯,這篇文章主要介紹了GoLang中panic和recover作用詳解,需要的朋友可以參考下
    2024-05-05
  • Go語言method詳解

    Go語言method詳解

    這篇文章主要介紹了Go語言method詳解,本文總結(jié)了在使用method的時候重要注意幾點、指針作為receiver、method繼承等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • Go空結(jié)構(gòu)體struct{}的作用是什么

    Go空結(jié)構(gòu)體struct{}的作用是什么

    本文主要介紹了Go空結(jié)構(gòu)體struct{}的作用是什么,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-02-02
  • Go語言繼承功能使用結(jié)構(gòu)體實現(xiàn)代碼重用

    Go語言繼承功能使用結(jié)構(gòu)體實現(xiàn)代碼重用

    今天我來給大家介紹一下在?Go?語言中如何實現(xiàn)類似于繼承的功能,讓我們的代碼更加簡潔和可重用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Golang開發(fā)命令行之flag包的使用方法

    Golang開發(fā)命令行之flag包的使用方法

    這篇文章主要介紹Golang開發(fā)命令行及flag包的使用方法,日常命令行操作,相對應(yīng)的眾多命令行工具是提高生產(chǎn)力的必備工具,本文圍繞該內(nèi)容展開話題,需要的朋友可以參考一下
    2021-10-10
  • go語言gin框架中間件詳解

    go語言gin框架中間件詳解

    在Go語言中,gin是一個常用的Web框架,用于構(gòu)建RESTful API和Web應(yīng)用程序。本文將通過代碼示例詳細介紹了gin框架中間件,感興趣的同學(xué)可以參考閱讀
    2023-04-04

最新評論

塘沽区| 普洱| 横山县| 调兵山市| 天长市| 西青区| 巴林右旗| 双流县| 镇宁| 闽侯县| 连州市| 瑞丽市| 西华县| 益阳市| 应用必备| 中卫市| 都匀市| 仪征市| 姚安县| 高青县| 甘谷县| 泰宁县| 鄯善县| 巴林左旗| 浠水县| 凤城市| 铜鼓县| 麦盖提县| 新干县| 台北县| 苗栗县| 施甸县| 区。| 宁阳县| 谷城县| 天全县| 环江| 治多县| 余干县| 克什克腾旗| 千阳县|