简介

在Go语言中Map将键与值绑定在一起,可以通过键获取对应的值。比如学号和学生对应。

Map的定义

在Go语言中map的定义:

map[Key Type]Value Type

说明:

1. Key Type是键类型

2. Value Type是值类型

创建Map

基本语法如下:

make(map[Key Type]Value Type)

说明:map 的类型表示为 map[Key Type]Value Type,例如:

person := make(map[string]int)

这里键的类型为 string,值的类型为 int

在Map中添加元素

案例如下:

package main

import "fmt"

func main() {
	person := make(map[string]int)
	person ["a"] = 1
	person ["b"] = 2
	fmt.Println(person)
	}

运行结果:

另外一种在声明时添加内容的方法:

package main

import "fmt"

func main() {
	person := map[string]int{
		"a" : 1,
		"b" : 2,
	}
	fmt.Println(person)
}

注意:键值对之前使用逗号分割,冒号左边是key,右边是值。

查询一个键在Map中是否存在

基本语法:

v, ok := map[key]

说明:在默认获取键值的基础上,多取了一个变量ok,可以判断键是否存在于map中

案例:

package main

import "fmt"

func main() {
	person := map[string]int{
		"a" : 1,
		"b" : 2,
	}
	person["c"] = 3
	newperson := "d"
	value, ok := person[newperson]
	if ok == true {
		fmt.Println(newperson,value)
	}else {
		fmt.Println("out")
	}
}

运行结果:

Map的遍历

Map遍历可以使用for range循环完成,可以同时获得键和值。案例:

package main

import "fmt"

func main() {
	person := map[string]int{
		"a" : 1,
		"b" : 2,
	}
	for k, v := range person{
		fmt.Println(k, v)
	}
}

运行结果:

如果只遍历值,将键改为匿名变量形式,可以使用下面写法:

for _, v := range person {

如果只遍历键时,可以使用:

for k := range person {

注意:遍历输出的元素的顺序每次都是无序的。

从Map中删除元素

可以使用delete()函数中删除一组键值对,delete函数没有返回值,基本格式如下:

delete(map, key)

案例如下:

package main

import "fmt"

func main() {
	person := map[string]int{
		"a" : 1,
		"b" : 2,
	}
	fmt.Println(person)
	//删除一组键值对
	delete(person,"a")
	fmt.Println(person)
}

运行结果如下:

Map的大小

使用函数len获取Map的大小,如:

package main

import "fmt"

func main() {
	person := map[string]int{
		"a" : 1,
		"b" : 2,
	}
	//获取Map大小
	fmt.Println(len(person))
}

运行结果如下:


以上就是学习映射(Map)的内容,在学习的过程中欢迎大家指正补充,感谢阅读。