简介
在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)的内容,在学习的过程中欢迎大家指正补充,感谢阅读。