golang-反射机制

来源:互联网 发布:json对象转成java对象 编辑:程序博客网 时间:2024/06/11 14:54

1,写数据库dao层的时候用到了反射机制。在反射的时候要注意你的对象时指针还是结构体这样区别也很大。以下接受几种常用的放射方法

reflect.type of

package mainimport ("fmt""reflect")type hehe struct {NameFile string "PrimaryKey"age      int}func main() {hehe := &hehe{"ssssssssssss", 33}yingShe(hehe)}func yingShe(obj interface{}) {hehe := &hehe{"ssssssssssss", 22}for i := 0; i < reflect.TypeOf(obj).Elem().NumField(); i++ {f := reflect.TypeOf(obj).Elem().Field(i)fmt.Print(f.Name, " : ")switch reflect.ValueOf(hehe).Elem().FieldByName(f.Name).Kind() {case reflect.Int:val := reflect.ValueOf(hehe).Elem().FieldByName(f.Name).Int()fmt.Println(val)default:val := reflect.ValueOf(hehe).Elem().FieldByName(f.Name)fmt.Print(val)}fmt.Println(",  ", reflect.TypeOf(hehe).Elem().Field(i).Tag)}}
运行结果

NameFile : ssssssssssss,   PrimaryKeyage : 22,   



0 0