its*_*lay 3 arrays dictionary go
如何在Go for map中创建一个键作为数组.例如在ruby中我可以实现它:
quarters = {
[1, 2, 3] => 'First quarter',
[4, 5, 6] => 'Second quarter',
[7, 8 ,9] => 'Third quarter',
[10, 11, 12] => 'Fourh quarter',
}
quarters[[1, 2, 3]]
# => "First quarter"
Run Code Online (Sandbox Code Playgroud)
如何在Golang中看到相同的内容?
数组类型(不像片)在Go具有可比性,所以没有什么神奇的它:你可以定义它像任何其他地图:map[KeyType]ValueType这里KeyType会[3]int和ValueType会string.
该比较操作符 ==和=必须为键类型的操作数被完全定义!; 因此,键类型不能是函数,映射或切片.
m := map[[3]int]string{}
m[[3]int{1, 2, 3}] = "First quarter"
m[[3]int{4, 5, 6}] = "Second quarter"
m[[3]int{7, 8, 9}] = "Third quarter"
m[[3]int{10, 11, 12}] = "Fourth quarter"
fmt.Println(m)
Run Code Online (Sandbox Code Playgroud)
输出:
map[[1 2 3]:First quarter [4 5 6]:Second quarter
[7 8 9]:Third quarter [10 11 12]:Fourth quarter]
Run Code Online (Sandbox Code Playgroud)
在Go Playground尝试一下.
要查询元素:
fmt.Println(m[[3]int{1, 2, 3}]) // Prints "First quarter"
Run Code Online (Sandbox Code Playgroud)
您还可以一步创建地图:
m := map[[3]int]string{
[3]int{1, 2, 3}: "First quarter",
[3]int{4, 5, 6}: "Second quarter",
[3]int{7, 8, 9}: "Third quarter",
[3]int{10, 11, 12}: "Fourth quarter",
}
Run Code Online (Sandbox Code Playgroud)