String 具有字符串索引的多级切片
我有一个如下代码:String 具有字符串索引的多级切片,string,go,slice,String,Go,Slice,我有一个如下代码: var c [][]string c = append(c, d) c = append(c, l) 假设d和l都是[]字符串。这是可行的,但是它会返回如下内容: var c [][]string c = append(c, d) c = append(c, l) [02410255700241025571102182000],[0241025570024102557111020000]] 如何将其结构设置为如下所示: var c [][]string c = ap
var c [][]string
c = append(c, d)
c = append(c, l)
假设d和l都是[]字符串。这是可行的,但是它会返回如下内容:
var c [][]string
c = append(c, d)
c = append(c, l)
[02410255700241025571102182000],[0241025570024102557111020000]]
如何将其结构设置为如下所示:
var c [][]string
c = append(c, d)
c = append(c, l)
[d:[0241025570024102557111020000],l:[0241025570024102557111020000]您想要的不再是一个切片,而是一张切片图。您可以使用以下代码获得所需的结果:
c := make(map[string][]string)
c["d"] = d
c["l"] = l
根据您的使用情况,您可能希望使用d和l的名称,而不是直接在地图中使用它们:
c := make(map[string][]string)
c["d"] = make([]string, len(d))
c["l"] = make([]string, len(l))
copy(c["d"], d)
copy(c["l"], l)
谢谢,这很有效!你能澄清在什么情况下需要复印吗?我所做的只是构建映射并使用JSON,其他什么都不做。@KNgu:如果您想在映射中存储变量的快照,您只需要复制切片,也就是说,如果您在将变量添加到映射后对d或l进行了更改,您不希望更改反映在映射中。