我有一个 redis 散列,它有一个键“has_ended”,我想将其转换为布尔值。someMap, _ := rv.redis.HGetAll(key).Result() // returns map[string]interface{}hasEnded := someMap["has_ended"]如果地图中不存在键“has_ended”并且我尝试将其转换为布尔值,它将崩溃。我怎样才能安全地写这个?
1 回答
慕娘9325324
TA贡献1783条经验 获得超4个赞
假设您使用的是流行的 github.com/go-redis/redis 包,则返回值HGetAll(key).Result()
是map[string]string
。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
}
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消