map [string] [] string和map [string] string有什么区别?

时间:2015-08-05 15:41:32

标签: dictionary go

我注意到 Go docs 中包含了这个定义:

type Values map[string][]string

我认为这是一个错误,但后来我尝试了这段代码并编译( Playground ):

package main

import "fmt"

func main() {
    type MyType map[string][]string

    foobar := make(MyType)

    fmt.Println(foobar)
}

它在功能上等同于map[string]string,还是有一些区别?

2 个答案:

答案 0 :(得分:5)

他们是不同的。一个是字符串到一个字符串片段的映射,另一个是字符串到单个字符串的映射

[]中的[]string表示切片

http://play.golang.org/p/nv7wSWW0F7

答案 1 :(得分:1)

一个是字符串切片的映射,而另一个是字符串映射。一个结构具有单个维度,map[string][]string具有两个维度。在每个键k处,您都会在切片中包含项0-n。因此,访问需要与fmt.Println(myInts[k][0])相同的另一个方向,例如fmt.Println(myInts[k])url。将数据放入其中,差异将更加明显。