map的定义
// 语法
map[keyType]ValueType
创建好map
后需要初始化map
,并且初始化容量防止运行过程中扩容
var m1 map[string]int
// 还没有初始化内存,
fmt.Println(m1 == nil)
// 要估算好map容量,避免程序运行过程中动态扩容
m1 = make(map[string]int, 10)
// 向map中的设置数据
m1["理想"] = 18
m1["小张"] = 21
fmt.Println(m1) // map[小张:21 理想:18]
map
循环
// map 遍历
for k, v := range m1 {
fmt.Println("key:", k, "value:", v)
}
单独遍历key
// 只遍历key
for k := range m1 {
fmt.Println("key:", k)
}
单独遍历value
// 只遍历value
for _, v := range m1 {
fmt.Println("value:", v)
}
利用delete
删除map
中的元素
// 删除
delete(m1, "理想")
// 第一个参数是map 第二个参数是指定删除map中的哪个袁术
创建元素类型为map
的Slice(切片)
// 第一种 元素类型为map的切片
// 如果容量是0 需要利用append()函数追加
//var s1 = make([]map[int]string, 0, 10)
var s1 = make([]map[int]string, 10)
// 没有对内部进行初始化
s1[0] = make(map[int]string, 10)
// 需要同时对切片和map同时进行初始化
// 设置一个map的切片元素
s1[0][1] = "A"
fmt.Println(s1)
创建元素Slice(切片)
的map
var m2 = make(map[string][]int, 10)
m2["中国"] = []int{1, 2, 3}
fmt.Println(m2)