校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 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 如何通過反射創建新對象的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 监利县| 临澧县| 拜泉县| 繁峙县| 乌鲁木齐县| 嘉义市| 本溪市| 伊通| 昌乐县| 仙游县| 井陉县| 新巴尔虎左旗| 原阳县| 汉阴县| 临猗县| 清河县| 高青县| 芦溪县| 德惠市| 图片| 金昌市| 博爱县| 康保县| 邵阳县| 根河市| 棋牌| 济宁市| 印江| 石棉县| 乐亭县| 大英县| 特克斯县| 舟山市| 利津县| 武穴市| 霍邱县| 天峨县| 岑溪市| 台前县| 桦川县| 潞西市|