package main
import "fmt"
func main(){
//定义一个map变量,类型为map[int]string,如果使用map一定初始化,make分配空间
var m1 map[int]string = make(map[int]string)
fmt.Println("m1=",m1)
m1[1]= "jake"
fmt.Println("m1=",m1)
m2 := make(map[int]string) //make方式创建然后自动推导类型
fmt.Println("len=",len(m2))
m2[1] = "mike"
fmt.Println("m2=",m2)
fmt.Println("len=",len(m2))
//map 先给map指定一个可以容纳长度,一旦超过这个长度 从新分配底层空间
//
m3 := make(map[int]string,2)
m3[1]="mile"
m3[2]="jack"
m3[3]="go"
fmt.Println("m3=",m3)
fmt.Println("len=",len(m3))
//map另一种初始化并且赋值
m4 := map[int]string{1:"mike",2:"jack",3:"go"}
fmt.Println("m4=",m4)
}
package main
import "fmt"
func main(){
m1 := map[int]string{1:"mike",2:"jack"}
fmt.Println("m1=",m1)
m1[1]="marry" //如果key存在,修改内容
m1[3]="tom" //如果没有key 追加内容,切片append
fmt.Println("m1=",m1)
}
package main
import "fmt"
func main(){
m := map[int]string{1:"mike",2:"jack",3:"tom"}
//第一个返回值为key 第二个返回值为value 遍历结构是无序的
for key,value :=range m{
fmt.Printf("%d======>%s\n",key,value)
}
//如何判断一个key是否存在,
//第一个返回值为key的所对应的value,第二个返回值为key是否存在的条件,如果存在ok为true
//value,ok := m[1]
if value,ok := m[1];ok == true{
fmt.Println("m[1]=",value)
}else {
fmt.Println("key 不存在")
}
delete(m,2) //删除key为2的内容
fmt.Println("m=",m)
}
package main
import "fmt"
func test(m map[int]string) { //map 和我们切片一样 他们是引用类型
delete(m,1)
}
func main(){
m :=map[int]string{1:"jack",2:"mike",3:"marry"}
fmt.Println("m=",m)
test(m)
fmt.Println("m=",m)
}