我正在使用 redigo,ScanStruct 非常有用。但是很明显,我正在尝试输入 urlhost 和 urlreq,这些值是根据用户的实际 uri 动态生成的。
显然下面的代码不起作用,那么我如何通过能够动态命名我的结构来实现我想要的,以便我可以正确地 ScanStruct?
func GetInfo(urlhost string, urlreq string) {
type qwInfo struct {
"s"+urlreq int
"c"+urlreq []byte
"t"+urlreq int
}
var QwInfo qwInfo
c := pool.Get()
defer c.Close()
values, _ := redis.Values(c.Do("HMGET", urlhost, "s"+urlreq, "c"+urlreq, "t"+urlreq))
redis.ScanStruct(values, &QwInfo);
提前致谢。
最佳答案
这不是办法,乖乖去吧 你应该改用反射
v := reflect.ValueOf(qwInfo).Elem().FieldByName(field)
关于go - 如何在 golang 中动态命名结构项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52855850/