map的基本操作:map为无序的键值对集合

package main

import "fmt"

func main() {
	var m1 map[int]string // 创建map
	fmt.Println(m1, len(m1))

	m2 := make(map[int]string) // 创建map
	fmt.Println(m2, len(m2))

	m3 := make(map[int]string, 2) // 指定长度
	fmt.Println(m3, len(m3))

	m3[1] = "hello"
	m3[2] = "world"
	m3[3] = "haha"
	fmt.Println(m3, len(m3)) // 超出长度容量会自动扩充,返回的顺序是无序的

	m4 := map[int]string{1: "hello", 2: "world", 3: "haha"}
	fmt.Println(m4)
}

赋值:

package main

import "fmt"

func main() {
	m1 := map[int]string{1: "212", 2: "hello"}
	fmt.Println(m1)
	m1[2] = "haha"  // 原来有值的则修改值
	m1[3] = "world" // 没有值则追加值
	fmt.Println(m1)
}

遍历,判断健值是否存在:

package main

import "fmt"

func main() {
	m := map[int]string{1: "aaa", 2: "bbb", 3: "ccc"}
	for key, value := range m {
		fmt.Printf("%d --- %s\n", key, value)
	}

	// 健名为字符串的map
	m1 := map[string]string{"1": "aaa", "2": "bbb", "3": "ccc"}
	for key, value := range m1 {
		fmt.Printf("%s --- %s\n", key, value)
	}

	// 判断健值是否存在
	value, exists := m[0]
	if exists == true {
		fmt.Println("健值存在", value)
	} else {
		fmt.Println("健值不存在")
	}
}

删除元素:

package main

import "fmt"

func main() {
	m := map[string]string{"haha": "222", "aaa": "333"}
	fmt.Println(m)

	delete(m, "aaa") // 删除键名为aaa的内容
	fmt.Println(m)
}

map做函数参数:

package main

import "fmt"

// 引用传递
func del(m map[int]string) {
	delete(m, 1)
}

func main() {
	m := map[int]string{1: "haha", 2: "hello"}
	del(m)
	fmt.Println(m)
}

多维map:

var shisizhuxing = map[string]map[int]string{
	"天气": {0: "良好", 1: "晴朗"},
	"空气": {0: "还行"},
}
fmt.Println(shisizhuxing["天气"][0])