为了账号安全,请及时绑定邮箱和手机立即绑定

尝试实现Redigo ScanStruct,但可遵循的示例有限

尝试实现Redigo ScanStruct,但可遵循的示例有限

Go
红糖糍粑 2021-04-02 18:15:24
我有一个代码:values, err := redis.Values(c.Do("hgetall", value))if err != nil {    fmt.Println("HGETALL", err)}/*type UD struct {    created_at  string    B           time.Time    ended_at    string    data        string    status      string}*/if err := redis.ScanStruct(values, &UD); err != nil {    fmt.Println(err)}我得到的错误是redigo.ScanStruct:无法分配字段B:无法从Redis批量字符串转换为time.Time我该如何解决?ScanStruct的任何示例都详细介绍了Struct的各种字段类型以供参考?
查看完整描述

2 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

的文档ScanStruct非常清楚:

支持整数,浮点数,布尔值,字符串和[] byte字段。

不支持其他字段类型time.Time

为了解决这个问题,我将制作自己的ScanStruct版本,该版本可以处理Redis和我需要抛出的任何类型之间的转换。


查看完整回答
反对 回复 2021-04-19
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

您可以简单地添加一个ignore标签来使时间字段避免被封送。


type UD struct {

    created_at  string

    B           time.Time `redis:"-"`

    ended_at    string

    data        string

    status      string

}


查看完整回答
反对 回复 2021-04-19
  • 2 回答
  • 0 关注
  • 444 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号