簡體   English   中英

如何將字符串附加到字符串到接口類型的映射中

[英]how to append string to the map of string to interface type

我創建了一個到接口的字符串映射{}

x := make(map[string]interface{})  

最終我需要以下輸出

x["key1"] = ["value1","value2","value3", ......]

任何人都可以幫忙,如何將字符串值附加到此地圖?

您只能附加到切片,而不能附加到地圖。

要添加您列出的值,請使用:

x["key"] = []string{"value1","value2","value3"}
fmt.Println(x)

如果"key"已經存在,你可以使用類型斷言附加到它:

x["key"] = append(x["key"].([]string), "value4", "value5")
fmt.Println(x)

輸出(嘗試Go Playground上的示例):

map[key:[value1 value2 value3]]
map[key:[value1 value2 value3 value4 value5]]

注意:您必須重新分配新切片(由append()返回)。

另請注意,如果"key"尚未出現在地圖中或不是[]string類型,則上述代碼將發生混亂。 為了防止這種恐慌,只有在值存在且類型為[]string時才追加:

if s, ok := x["key"].([]string); ok {
    x["key"] = append(s, "value4", "value5")
} else {
    // Either missing or not []string
    x["key"] = []string{"value4", "value5"}
}

Go Playground上試試這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM