go - 如何在 golang 中动态命名结构项?

标签 go redis redigo

我正在使用 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/

相关文章:

使用 Go 的 Docker 代理

binary - 强制 go 读取 Uvarint 的多个字节

go - 如何在 slice 的开头插入元素?

删除 sleep 后 Redis 管道无法工作

ruby-on-rails - 如何将 Resque 作业锁定到一台服务器

go - 从 redigo 调用 lua 脚本抛出错误,参数数量错误

go - Redigo:尝试连接到池时无效的内存地址或零指针取消引用

go - 如果没有类似 IDE 的特性,我们怎么知道包级变量是在哪里定义的?

node.js - 在特定时间向用户发送多个通知

go - 在 Go 中重新连接到 Redis 订阅的惯用方法是什么?