需要确保我没有在这里发疯.记录实例地图显示地图的预期,但是从地图中检索值不工作,如下所示。
serverStates initalized为。serverStates: make(map[string](string))
功能:
// Function to retrieve a server state by key
func (sv *ServerSupervisor) getState(key string) string {
sv.mutex.Lock()
defer sv.mutex.Unlock()
strings.TrimSpace(key)
log.Println("map size: ", len(sv.serverStates))
log.Println("map: ", sv.serverStates)
log.Println("map at " + key + ": ", sv.serverStates[key])
return sv.serverStates[key]
}
Console Output:
2020/05/26 22:49:10 map size: 1
2020/05/26 22:49:10 map: map[2Rapxurg69iO:idle]
2020/05/26 22:49:10 map at 2Rapxurg69iO :
谁能解释一下为什么 sv.serverStates[key]
是零?
我在帮助函数中的字节分片索引被证明是不正确的,并且在键中添加了尾部的空字符。
我使用了 fmt.printf("%q", key)
马克建议,这表明 "9mfMcKhVRnzj\x00\x00\x00\x00"
strings.TrimSpace()
在这种情况下将无法工作,我通过调整字节片来解决这个问题。