golang interface 转 struct 反射
type YYSUserInfo struct {
UserInfo string `json:"user_info"`
MacPC string `json:"mac_pc"`
ID string `json:"id"`
Online bool `json:"online"`
Ping int `json:"ping"`
LastPing time.Duration `json:"last_ping"`
Connection time.Duration `json:"connection"`
Exit time.Duration `json:"exit"`
LastUpdata time.Duration `json:"last_updata"`
JieJie_JiCun time.Duration `json:"jie_jie_ji_cun"`
JieJie_King bool `json:"jie_jie_king"`
JieJie_Weekly bool `json:"jie_jie_weekly"`
JieJie_CreateJieJie time.Duration `json:"jie_jie_create_jie_jie"`
JieJie_TiLi bool `json:"jie_jie_ti_li"`
JieJie_DiTuTiLi time.Duration `json:"jie_jie_di_tu_ti_li"`
TanSuo_MiWen int `json:"tan_suo_mi_wen"`
TanSuo_DiYuGuiWang bool `json:"tan_suo_di_yu_gui_wang"`
TingYuan_QianDao bool `json:"ting_yuan_qian_dao"`
TingYuan_50Hei bool `json:"ting_yuan_50_hei"`
TingYuan_ChongWu bool `json:"ting_yuan_chong_wu"`
TingYuan_WeekBuff bool `json:"ting_yuan_week_buff"`
FengMo_ShouLing bool `json:"feng_mo_shou_ling"`
FengMo_RenWu int `json:"feng_mo_ren_wu"`
}
func CretaExec(cmd string, key interface{}, args ...interface{}) (interface{}, error) {
con := r.pool.Get()
if err := con.Err(); err != nil {
return nil, err
}
defer con.Close()
parmas := make([]interface{}, 0)
parmas = append(parmas, key)
if len(args) >0{
for _,v :=range args{
t :=reflect.TypeOf(v)
v := reflect.ValueOf(v)
for i := 0; i < t.NumField(); i++ {
parmas = append(parmas,t.Field(i).Name, v.Field(i).Interface())
}
}
}.Do(cmd, parmas...)
}