gpt4 book ai didi

go - 在 Redigo 中将 "false"和 "true"扫描为 bool 值

转载 作者:可可西里 更新时间:2023-11-01 11:12:56 25 4
gpt4 key购买 nike

如何使用 redis.ScanStruct 将字符串解析为 bool 值甚至自定义类型?

我使用的结构如下所示:

type Attrs struct {
Secret string `redis:"secret"`
RequireSecret string `redis:"requireSecret"`
UserID string `redis:"userId"`
}

RequireSecret 属性是“true”或“false”字符串,我想将其扫描为 bool

最佳答案

要扫描 HGETALL 的结果,请使用以下类型

type Attrs struct {
Secret string `redis:"secret"`
RequireSecret bool `redis:"requireSecret"`
UserID string `redis:"userId"`
}

使用以下命令:

values, err := redis.Values(c.Do("HGETALL", key))
if err != nil {
// handle error
}
var attrs Attrs
err = redis.ScanStruct(values, &attrs)
if err != nil {
// handle error
}

因为 Redigo 使用 strconv.ParseBool要将 Redis 结果值转换为 bool,您不需要实现扫描器接口(interface)来将 "true""false" 转换为 truefalse

您可以在结构字段的子集上实现扫描器接口(interface)。 Redigo 将为未实现接口(interface)的字段使用默认解析器,并为实现接口(interface)的字段使用应用程序的自定义解析器。

除非您需要通过 Redis API 访问单个哈希元素,否则通常最好通过使用 JSON、gob 或其他编码器序列化结构将结构存储为 Redis 字符串。

关于go - 在 Redigo 中将 "false"和 "true"扫描为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46895530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com