键为数组类型的哈希

2023-12-15

如何在 Go 中为地图创建一个键作为数组。 例如在 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"

在 Golang 中看起来如何?


Go 中的数组类型(与切片不同)是可比较的,因此它没有什么神奇之处:您可以像任何其他映射一样定义它:map[KeyType]ValueType where KeyType[3]int and ValueTypestring.

The 比较运算符== 和 != 必须为键类型的操作数完全定义;因此键类型不能是函数、映射或切片。

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)

Output:

map[[1 2 3]:First quarter [4 5 6]:Second quarter 
    [7 8 9]:Third quarter [10 11 12]:Fourth quarter]

尝试一下去游乐场.

查询一个元素:

fmt.Println(m[[3]int{1, 2, 3}]) // Prints "First quarter"

您还可以一步创建地图:

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",
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

键为数组类型的哈希 的相关文章

随机推荐