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

时间:2018-11-01 00:39:31

标签: go redis

我有一个redis哈希,它的键“ has_ended”要转换为布尔值。

g_distance_dict = {(e1, e2): 1 / weight for e1, e2, weight in g.edges(data='weight')}
nx.set_edge_attributes(g, g_distance_dict, 'distance')

如果键“ has_ended”在地图中不存在,而我尝试将其转换为布尔值,它将崩溃。我该如何安全地写这个?

1 个答案:

答案 0 :(得分:1)

假设您使用的是流行的github.com/go-redis/redis包,则public static void main(String[] args){ String s = "abcacas"; long n = 1000000; long count = getCount(s, n, 'a'); System.out.println(count); } private long getCount(String str, long n, char c) { int length = str.length(); long repeats = n / length; long reminder = n % length; long count = 0; for (int i = 0; i < length; i++) { if (str.charAt(i) == c) { count += repeats; if (i < reminder) { count++; } } } return count; } 的返回值为HGetAll(key).Result()doc)。如果不存在键,则表达式map[string]string的计算结果为空字符串。

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

someMap["has_ended"]

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

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