Golang学习笔记—map

map

map是一种key:value键值对的数据结构容器,map内部实现是哈希表(hash)

map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值

map是引用类型

声明

可以使用内键函数make也可以使用map关键字来声明

//声明变量,默认map值是nil
var map_variable map[key]value
//make声明
map_variable = make(map[key]value)

Demo1

m1使用make初始化,m2批量赋值

m1 := make(map[string]string)
m1["name"] = "Sentiemnt"
m1["age"] = "18"
fmt.Printf("m1:%v\n", m1)

m2 := map[string]string{
   "name": "Tana",
   "age":  "20",
}
fmt.Printf("m2:%v", m2)

结果:

m1:map[age:18 name:Sentiemnt]
m2:map[age:20 name:Tana]

Demo2

可以根据索引输出

m1 := make(map[string]string)
m1["name"] = "Sentiemnt"
m1["age"] = "18"
fmt.Printf("m1:%v", m1["name"])

结果:

m1:Sentiemnt

Demo03

其实再根据索引赋值时,会产生两个值,一个是值本身,另一个是bool类型的值来判断本索引是否存在

m1 := make(map[string]string)
m1["name"] = "Sentiemnt"
m1["age"] = "18"
value, b := m1["age"]
fmt.Println(value, b)

索引age存在所以返回true

结果:

18 true

循环

跟数组循环遍历类似,两个值value和key(Goland快捷键forr)

var m1 = map[string]string{"name": "Sentiment", "age": "18"}
for key, value := range m1 {
  fmt.Println(key, value)
	}
}

结果:

name Sentiment
age 18

你可能感兴趣的:(Golang,golang,学习,开发语言)