go - 如何在golang中动态命名结构项?
问题描述
我正在使用 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)
推荐阅读
- javascript - 迭代嵌套对象时修改对象键
- csv - 在 Unix 服务器上:无法将货币符号 (£,€) 从 json 解析为 .csv 文件
- postgresql - 如何连接到 Postgresql 数据库 - Openproject
- acumatica - 将 Excel 导入添加到现有 Acumatica 页面 - 无需重新定义数据视图
- c# - Autofac 核心依赖解析异常
- asp.net-core - Blazor Security - Razor Pages 自定义身份验证/安全性
- gitlab - gitlab如何在一台机器上并行运行多个管道?
- powershell - 使用计划任务根据文件名将文件移动到特定的 YY-MM 文件夹中
- cookies - 如何让 cookie 正确地与 Nuxt Apollo 和 SSR 一起使用?
- java - 列表大小由于某种原因回到零