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]
*/