直接上代码:
type User struct{
Username string `json:"Username"`
Socre float `json:"Socre"`
}
//获取结构体中字段的名称
func GetFieldName(columnName string, info User) float64 {
var val float64
t := reflect.TypeOf(info)
if t.Kind() == reflect.Ptr {
t = t.Elem()
}
if t.Kind() != reflect.Struct {
fmt.Println("Check type error not Struct")
return 0
}
fieldNum := t.NumField()
for i := 0; i < fieldNum; i++ {
if strings.ToUpper(t.Field(i).Name) == strings.ToUpper(columnName) {
v := reflect.ValueOf(info)
val := v.FieldByName(t.Field(i).Name).Float()
return val
}
}
return val
}
使用:
GetFieldName("score",userinfo)