-2
Go的字符串映射关键字是否有最大长度? 其实我用https://github.com/OneOfOne/cmap而不是Go的地图。GoLang的字符串映射关键字中是否存在任何字符串长度限制?
现在的问题是,我在cmap
中使用的密钥长度大约为200-4000个字符,它会是一个问题/陷阱吗?
import "gitlab.com/kokizzu/gokil/I"
import "sync/atomic"
var CACHE_IDX int64
var CACHE_KEYS cmap.CMap
func init() {
CACHE_KEYS = cmap.New()
}
// change a really long string to a shorter one
func RamKey_ByQuery(query string) string {
nkey := CACHE_KEYS.Get(query)
if nkey != nil {
return nkey.(string)
}
new_idx := atomic.AddInt64(&CACHE_IDX, 1)
ram_key := `:` + I.ToS(new_idx) // convert integer to string
CACHE_KEYS.Set(query, ram_key)
return ram_key
}
您对Go的内置地图类型或cmap有疑问吗?对于Go:阅读规范。如果地图密钥长度没有限制(没有),那么没有限制。对于cmap:为什么不问作者? – Volker
顺便说一句:在你的代码中有几个陷阱,但不是和map-key长度有关。 – Volker
,因为内部cmap使用map – Kokizzu