我有一个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”在地图中不存在,而我尝试将其转换为布尔值,它将崩溃。我该如何安全地写这个?
答案 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"