【发布时间】:2018-10-17 13:16:59
【问题描述】:
我正在使用 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);
提前致谢。
【问题讨论】:
-
这样不行:)
-
等等,你是说 redis 键是 per-urlreq 吗?您扫描到的结构可以设置键名,也许您可以添加一个字段来保留 urlreq 值并将其用于您以后需要做的任何事情(大概类似于编组到 JSON)
-
结构字段是在编译时定义的,而不是在运行时定义的。也许你应该改用地图。
-
是的,我认为地图可能是合适的数据结构
-
谁能给我一个我可以扫描结构的地图的解决方案?