2016-11-18 27 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

我認爲唯一的限制就是你的記憶。