🌞

Golang系列教程--Map

「Map」

键值对的无序集合,key唯一,根据key可快速查找数据,底层用哈希表实现。

📜本文内容

🐵map的初始化

使用make关键字,make(map[T]T)

1
2
3
4
// 创建一个key为string,value为int类型的map
map1 := make(map[string]int)
// 复合map,key为string,value为一个map
map2 := make(map[string]map[string]int)
🐵map插入元素
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package main

import	"fmt"

func main() {
  // 声明map
	var personAge map[string]int
  // 初始化map
	personAge = make(map[string]int)

  // 插入数据
	personAge["Amy"] = 1
	personAge["Daming"] = 2

	fmt.Println("Create a map": personAge)
}
1
Create a map : map[Daming:2 Amy:1]
🐵map删除元素

使用内置函数delete(map,key)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
package main

import "fmt"

func main() {
  // 声明map
  var personAge map[string]int
  // 初始化map
  personAge = make(map[string]int)

  // 插入数据
	personAge["Amy"] = 1
	personAge["Daming"] = 2

	fmt.Println("Create a map :",personAge)

  // 删除一个数据
	delete(personAge, "Amy")
	fmt.Println("delete Amy :",personAge)
}
1
2
Create a map : map[Daming:2 amy:1]
Delete Amy : map[Daming:2]
🐵map访问元素
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import "fmt"

func main() {
  personAge := map[string]int{
  	"Amy" : 1,
  	"Daming" : 2,
  	"Lily" : 3,
  }

  // 1. 通过key的内容直接获取:不存在则返回值类型的0值,例如map[string]string,不存在的返回""
	fmt.Println("Get Jimmy :",personAge["Jimmy"])
  fmt.Println("Get Amy :",personAge["Amy"])

  // 2. personAge["Jimmy"]返回两个参数
  value ,ok := personAge["Jimmy"]
  fmt.Println("Jimmy exists ? ",ok)

  value ,ok = personAge["Amy"]
  fmt.Printf("Amy exists ? %v the value is : %d", ok, value)
}

在访问元素时,第一个参数是访问的元素的值,第二个参数为元素是否存在,存在则是true,不存在为false,此外,不存在的元素的返回值是元素取值的默认0值。

1
2
3
4
Get Jimmy : 0
Get Amy : 1
Jimmy exists ?  false
Amy exists ? true the value is :1
🐵map的遍历
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import "fmt"

func main() {
  personAge := map[string]int{
  	"Amy" : 1,
  	"Daming" : 2,
  	"Lily" : 3,
  }

  for key, value := range personAge {
    fmt.Printf("key: %s, value: %d\n", key, value)
  }
}
1
2
3
key: Amy, value: 1
key: Daming, value: 2
key: Lily, value: 3
updatedupdated2019-12-162019-12-16