Golang地图的值没有被一个键检索到。

问题描述 投票:0回答:1

需要确保我没有在这里发疯.记录实例地图显示地图的预期,但是从地图中检索值不工作,如下所示。

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

go maps
1个回答
0
投票

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

我使用了 fmt.printf("%q", key) 马克建议,这表明 "9mfMcKhVRnzj\x00\x00\x00\x00"

strings.TrimSpace() 在这种情况下将无法工作,我通过调整字节片来解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.