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

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


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


hasEnded := someMap["has_ended"]

如果地图中不存在键“has_ended”并且我尝试将其转换为布尔值,它将崩溃。我怎样才能安全地写这个?


当年话下
浏览 88回答 1
1回答

慕娘9325324

假设您使用的是流行的 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 }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go