Golang03-map

177 阅读1分钟

1、map

map就是字典,可以查询某个词的语义。也就是哈希表,有一个key,和一个value,可以通过key去访问value。

map的value可以是任意的数据类型,map和切片一样,也是一种引用类型。

1.1map的语法

package main

import "fmt"

func main()  {
	//声明同时初始化
	var country=map[string] string{
		"China":"北京",
		"Japan":"东京",
		"France":"巴黎",
		"Italy":"罗马",
	}
	for k,v:=range country{
		fmt.Printf("key:%s\t,value:%s\n",k,v)
	}
	if value,ok:=country["USA"];ok{
		fmt.Println("首都",value)
	}else{
		fmt.Println("未找到usa!")
	}
        //利用delete来删除map中的元素
	delete(country,"Japan")
	for k,v:=range country{
		fmt.Printf("%s\t,%s\n",k,v)
	}
}

1.2map是引用类型

map与切片相似,都是引用类型。讲一个map赋值给一个新的变量时,它们指向的同一块内存。因此,当修改两个变量的内容都能够引起它们所指向的数据发生改变。

sample,验证map是引用类型

package main

import "fmt"

func main()  {
	personMoney:=map[string] int{
		"JackMa":9999999999,
		"PonyMa(":9999999998,
		"StevenDing":88888888,
	}
	fmt.Println("有多少钱",personMoney)
	newP:=personMoney
	newP["JackMa"]=100
	fmt.Println("现在呢?",personMoney)
}
/*
有多少钱 map[JackMa:9999999999 PonyMa(:9999999998 StevenDing:88888888]
现在呢? map[JackMa:100 PonyMa(:9999999998 StevenDing:88888888]
*/