首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试实现Redigo ScanStruct,但下面的示例有限

尝试实现Redigo ScanStruct,但下面的示例有限
EN

Stack Overflow用户
提问于 2018-08-03 11:19:57
回答 2查看 702关注 0票数 0

我有个密码:

代码语言:javascript
复制
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示例供结构参考吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-03 12:16:19

ScanStruct的文档非常清楚:

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2020-06-02 07:41:15

您可以简单地添加一个忽略标记,以使时间域避免被封送。

代码语言:javascript
复制
type UD struct {
    created_at  string
    B           time.Time `redis:"-"`
    ended_at    string
    data        string
    status      string
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51671473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档