键未检索到 Golang 映射值

Golang map value not retrieved by a key

需要确保我不会在这里发疯。 记录实例地图会按预期显示地图,但是从地图中检索值不起作用,如下所示。

serverStates 初始化为: 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]
}

控制台输出:

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] 是零吗?

我在辅助函数中的字节切片索引被证明是不正确的,并在键中添加了尾随空字符。

我按照 Marc 的建议使用了 fmt.printf("%q", key),结果显示 "9mfMcKhVRnzj\x00\x00\x00\x00"

strings.TrimSpace()在这种情况下不起作用,我通过调整字节切片解决了这个问题。