91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang怎么通過反射創建新對象

發布時間:2021-04-29 14:09:04 來源:億速云 閱讀:1644 作者:小新 欄目:開發技術

小編給大家分享一下golang怎么通過反射創建新對象,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

golang適合做什么

golang可以做服務器端開發,但golang很適合做日志處理、數據打包、虛擬機處理、數據庫代理等工作。在網絡編程方面,它還廣泛應用于web應用、API應用等領域。

直接貼代碼~

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}
}

以上是“golang怎么通過反射創建新對象”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲江县| 秀山| 遵化市| 灵川县| 平陆县| 长葛市| 中阳县| 开原市| 乐东| 平定县| 奉贤区| 沧源| 乾安县| 墨竹工卡县| 泾阳县| 衡南县| 喀喇| 宝鸡市| 青海省| 雷州市| 三河市| 安义县| 永州市| 北安市| 沈阳市| 临沭县| 新宁县| 长沙县| 高淳县| 佛坪县| 绍兴县| 磐石市| 天门市| 玉溪市| 临澧县| 丘北县| 栾城县| 锡林浩特市| 木里| 望城县| 揭西县|