[Go语言] 初学者必看系列: 映射(Map)
地图
在Golang中,哈希表(hash table)被称为map。
这是一种数据结构,用于存储多个键和值的组合,并快速查询与键对应的值。

定义方式 yì shì)
请用中文进行重述,只需要一种选择:
方案一
- 構文
変数名 := map[型]型{初期値1, ..., 初期値n}
- 例
languages := map[string]string{
"go":"golang",
"rb":"ruby",
"js":"javascript",
}
第二种方法
- 構文
変数名 := make(map[型]型, 容量)
- 例
languages := make(map[string]string)
languages["go"] = "golang"
languages["rb"] = "ruby"
languages["js"] = "javascript"
插入和更新要素
- 要素の挿入や更新:
languages := map[string]string{}
languages["go"] = "golang" // "go"キーが存在する場合は、valueが "golang" に更新され、
// 存在しない場合は、("go", "golang") という Key-ValueのペアがMapに挿入される。
- 要素の取得:
elem, ok := languages["go"] // "go"キーが存在する場合は、 ok == true
// 存在しない場合は、ok == false

遍历要素 (iteration)
range でMapを走査できる。
for key, value := range languages{
...
}
注意:Go语言中的Map迭代会导致元素随机获取,因此每次执行时都会得到不同的结果。
要素的碰撞
当多个不同的键被放置在同一个桶中时,我们称之为冲突(collision)。
Go的Map用指针将发生冲突的键连接在一起(通过链地址法)。
