登录
首页 >  Golang >  Go问答

如何将结构体的多个非空值传递给 golang 中的 hmset?

来源:stackoverflow

时间:2024-04-11 13:48:37 132浏览 收藏

大家好,我们又见面了啊~本文《如何将结构体的多个非空值传递给 golang 中的 hmset?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

参考此: https://play.golang.org/p/0kYRHO5f7kE

如果我有 20 多个不同的字段,如果结构中的其中一个字段为空,则不要更新它。仅更新其中包含值的内容。

最好的前进方向是什么?我已经看到作为可变参数输入传递给另一个函数,但我怎样才能最好地优雅地做到这一点?


解决方案


您可以使用 this 库将结构字段转换为接口映射(可以使用 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

到这里,我们也就讲完了《如何将结构体的多个非空值传递给 golang 中的 hmset?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>