Go/复合数据类型/map-字典

# map是一种键值对存取的复合数据类型

package main

import "fmt"

func main() {
	//map 无序  键值唯一
	//键值一般是基本数据类型(不能是切片等数据类型、不能是函数类型)
	//map 只有len() 没有cap()

	//声明定义一个map变量
	var m map[int]string
	m1 := make(map[int]string)
	m2 := make(map[int]string,5)	//指定初始容量

	//map的赋值与添加
	m1[1] = "aaa"
	m1[2] = "bbb"
	m1[1] = "111"
	m1[3] = "ccc"
	fmt.Println(len(m))			//0
	fmt.Println(m1)				//map[1:111 2:bbb 3:ccc]
	fmt.Println(len(m2))		//0

	//map初始化
	m3 := map[int]string{1:"c",2:"c++",3:"java",4:"golang"}
	fmt.Println(m3)				//map[2:c++ 3:java 4:golang 1:c]

	//map遍历
	for k,v := range m3 {
		fmt.Printf("%d:%s \n",k,v)
	}

	//map判断key是否存在
	k := 5
	v,flg := m3[k]
	if flg == true{
		fmt.Println("key存在,value为:",v)
	}else{
		fmt.Println("key不存在")
	}

	//map的删除
	k = 3
	delete(m3,k)	//删除key为3的键值对
	fmt.Println(m3)

	//map作函数参数为引用传递
	test(m3)
	fmt.Println(m3)

}

func test(m map[int]string){
	m[100] = "fff"
}

猜你喜欢

转载自blog.csdn.net/qq_24243483/article/details/84137079