[Go语言] 初学者必看系列: 映射(Map)

地图

在Golang中,哈希表(hash table)被称为map。

这是一种数据结构,用于存储多个键和值的组合,并快速查询与键对应的值。

golang-map.png

定义方式 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
golang-find.png

遍历要素 (iteration)

range でMapを走査できる。

  for key, value := range languages{
    ...
  }

注意:Go语言中的Map迭代会导致元素随机获取,因此每次执行时都会得到不同的结果。

要素的碰撞

当多个不同的键被放置在同一个桶中时,我们称之为冲突(collision)。

Go的Map用指针将发生冲突的键连接在一起(通过链地址法)。

golang-collision.png

视频

原文即文章。

广告
将在 10 秒后关闭
bannerAds