您的位置:首页 > 编程语言 > Go语言

golang-反射机制

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

reflect.type of

package main

import (
"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, PrimaryKey
age : 22
,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: