婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > golang 如何通過反射創建新對象

golang 如何通過反射創建新對象

熱門標簽:電話機器人軟件免費 excel地圖標注分布數據 外呼系統用什么卡 壽光微信地圖標注 評價高的400電話辦理 外呼系統顯本地手機號 涿州代理外呼系統 阿克蘇地圖標注 百度地圖標注后傳給手機

廢話少說,直接貼代碼~

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

補充:Go語言中創建對象的幾種方式

對于Go對象

type Car struct {
    color string
    size  string
}

方式一:

使用T{…}方式,結果為值類型

c := Car{}

方式二:

使用new的方式,結果為指針類型

c1 := new(Car)

方式三:

使用方式,結果為指針類型

c2 := Car{}

以下為創建并初始化

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

構造函數:

在Go語言中沒有構造函數的概念,對象的創建通常交由一個全局的創建函數來完成,以 NewXXX 來命名,表示“構造函數” :

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

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

您可能感興趣的文章:
  • Go語言變量創建的五種方法
  • Go語言創建、初始化數組的常見方式匯總
  • Go語言中的復合類型詳細介紹

標簽:欽州 雞西 吐魯番 銅川 蘭州 汕頭 重慶 梅河口

巨人網絡通訊聲明:本文標題《golang 如何通過反射創建新對象》,本文關鍵詞  golang,如何,通過,反射,創,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang 如何通過反射創建新對象》相關的同類信息!
  • 本頁收集關于golang 如何通過反射創建新對象的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 嘉祥县| 乐昌市| 启东市| 夏河县| 喀喇沁旗| 龙南县| 抚松县| 如东县| 虹口区| 和平县| 乌苏市| 鄯善县| 铜川市| 嘉黎县| 武城县| 兴和县| 中宁县| 长春市| 乐昌市| 三台县| 北宁市| 灵宝市| 连州市| 孟连| 平邑县| 平和县| 郑州市| 永宁县| 大连市| 晴隆县| 于田县| 宣汉县| 凤城市| 江北区| 嘉荫县| 洱源县| 丹寨县| 道孚县| 团风县| 兴文县| 远安县|