background/utils/reflect.go

21 lines
400 B
Go

package utils
import "reflect"
func ReflectMakeNew(t reflect.Type) interface{} {
retptr := reflect.New(t)
sval := retptr.Elem().Interface()
return sval
}
type TagMap map[string] string
func ReflectTagMap(t reflect.Type) map[string] TagMap{
ret := map[string] TagMap{}
num := t.NumField()
for i := 0;i < num;i++{
s := t.Field(i).Tag
ret[string(s)] = t.Field(i).Name
}
return ret
}