go语言通过反射获取和设置结构体字段值的方法

本文实例讲述了go语言通过反射获取和设置结构体字段值的方法。分享给大家供大家参考。具体实现方法如下:

type MyStruct struct {
        N int
}
n := MyStruct{ 1 }
// get
immutable := reflect.ValueOf(n)
val := immutable.FieldByName("N").Int()
fmt.Printf("N=%d\n", val) // prints 1

// set
mutable := reflect.ValueOf(&n).Elem()
mutable.FieldByName("N").SetInt(7)
fmt.Printf("N=%d\n", n.N) // prints 7

如果是interface{}转map[string]interface{} 可以直接转

User.(map[string]interface{})["username"]

其实值类型的转换如下

 var a interface{}
    var b string
    a = "asdasdasdasd"
    b = a.(string)
    fmt.Println(a, b)

  

posted @ 2019-01-09 11:57  林台山人  阅读(6466)  评论(0编辑  收藏  举报