gpt4 book ai didi

go - 如何安全地加载哈希,并将值转换为 bool 值(如果存在)

转载 作者:可可西里 更新时间:2023-11-01 11:14:55 26 4
gpt4 key购买 nike

我有一个 redis 散列,它有一个键“has_ended”,我想将其转换为 bool 值。

someMap, _ := rv.redis.HGetAll(key).Result() // returns map[string]interface{}

hasEnded := someMap["has_ended"]

如果键“has_ended”不在 map 中,而我尝试将其转换为 bool 值,它将崩溃。我怎样才能安全地写这个?

最佳答案

假设您使用的是流行的 github.com/go-redis/redis 包,HGetAll(key).Result() 的返回值是一个 map[string]string (doc)。如果键不存在,表达式 someMap["has_ended"] 的计算结果为空字符串。

如果 hasEnded 为 true 当且仅当键的值为“true”时,然后使用以下内容:

 hasEnded := someMap["has_ended"] == "true"

使用strconv.ParseBool处理更广泛的可能值(1、t、T、TRUE、true、True、0、f、F、FALSE、false、False):

 hasEnded, err := strconv.ParseBool(someMap["has_ended"])
if err != nil {
// handle invalid value or missing value, possibly by setting hasEnded to false
}

关于go - 如何安全地加载哈希,并将值转换为 bool 值(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53093748/

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