引用这个: https://play.golang.org/p/0kYRHO5f7kE
如果我有 20 多个不同的字段,如果 Struct 中的一个字段为空,请不要更新它。只更新其中包含值的那些。
最好的前进方向是什么?我已经看到将可变输入传递给另一个函数,但我怎样才能优雅地做到这一点?
最佳答案
你可以使用this将您的结构字段转换为接口(interface)映射的库(可以使用来自 stdlib 的反射由您自己完成)然后循环它
pipe := redisClient.TxPipeline()
m := structs.Map(server)
for k, v := range m {
pipe.HMSet(username, k, v)
}
cmder, err := pipe.Exec()
if err != nil {
return nil, err
}
使用的redis驱动是go-redis
关于go - 如何将结构的多个非空值传递给 golang 中的 hmset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51568375/