2016-11-18 119 views
-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 
} 
+2

您对Go的内置地图类型或cmap有疑问吗?对于Go:阅读规范。如果地图密钥长度没有限制(没有),那么没有限制。对于cmap:为什么不问作者? – Volker

+1

顺便说一句:在你的代码中有几个陷阱,但不是和map-key长度有关。 – Volker

+0

,因为内部cmap使用map – Kokizzu

回答

2

我认为唯一的限制就是你的记忆。