Construção do mapa
O valor inicial do tipo de referência é nil, uma fatia vazia pode ser usada, mas um mapa vazio não pode ser usado
estrutura gramatical:
1. Crie um mapa
var map1 map[key类型]value类型
nil map,无法直接使用
var map2=make(map[key类型])value类型
var map3=map[key类型]value类型{key:value,key:value....}
复制代码
package main
import "fmt"
func main() {
/*
map:映射,是一种专门用于存储键值对的集合,属于引用类型
存储特点:
A.存储的是无序的键值对
B.键不能重复,并且和value值一一对应的
map中key不能重复。如果重复,新的value会覆盖原来的。
语法结构:
1.创建map
*/
//创建map
var map1 map[int]string
var map2=make(map[int]string)
var map3=map[string]int{"Go":98,"Python":87,"java":79,"Html":93}
fmt.Println(map1)
fmt.Println(map2)
fmt.Println(map3)
fmt.Println(map1==nil)
fmt.Println(map2==nil)
fmt.Println(map3 ==nil)
if map1==nil {
map1=make(map[int]string)
fmt.Println(map1==nil)
}
}
复制代码
uso do mapa
package main
import "fmt"
func main() {
/*
map:映射,是一种专门用于存储键值对的集合,属于引用类型
存储特点:
A.存储的是无序的键值对
B.键不能重复,并且和value值一一对应的
map中key不能重复。如果重复,新的value会覆盖原来的。
语法结构:
1. 创建map
var map1 map[key类型]value类型
nil map,无法直接使用
var map2=make(map[key类型])value类型
var map3=map[key类型]value类型{key:value,key:value....}
*/
//1.创建map
var map1 map[int]string
var map2=make(map[int]string)
var map3=map[string]int{"Go":98,"Python":87,"java":79,"Html":93}
fmt.Println(map1)
fmt.Println(map2)
fmt.Println(map3)
fmt.Println(map1==nil)
fmt.Println(map2==nil)
fmt.Println(map3 ==nil)
//2.nil map不能直接使用
if map1==nil {
map1=make(map[int]string)
fmt.Println(map1==nil)
}
//3.存储键值到map中
map1[1]="hello"
map1[2]="world"
map1[3]="mm"
map1[4]="fasd"
map1[5]="ffff"
//4.获取数据
//根据key获取对应value,如果key不存在,获取value类型的默认值
fmt.Println(map1)
fmt.Println(map1[4])
fmt.Println(map1[40])
//返回两个值,v1为数据,OK判断key值是否存在
v1,ok:=map1[40]
if ok {
fmt.Println("对应数值为:",v1)
}else {
fmt.Println("key不存在")
}
//5.修改数据
fmt.Println(map1)
map1[3]="如花"
fmt.Println(map1)
//6.删除数据
delete(map1,3)
fmt.Println(map1)
delete(map1,30)
fmt.Println(map1)
//7.map长度
fmt.Println(len(map1))
}
复制代码