Go语言自学系列 | golang map
Posted COCOgsta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言自学系列 | golang map相关的知识,希望对你有一定的参考价值。
视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客
map是一种key:value键值对的数据结构容器。map内部实现是哈希表(hash)。
map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。
map是引用类型的。
map的语法格式
可以使用内建函数 make 也可以使用 map 关键字来定义 map
/* 声明变量,默认 map 是 nil */
var map_variable map[key_data_type]value_data_type
/* 使用 make 函数 */
map_variable = make(map[key_data_type]value_data_type)
map_variable:map变量名称
key_data_type:key的数据类型
value_data_type:值得数据类型
实例
下面声明一个保存个人信息的map
package main
import "fmt"
func main()
m1 := make(map[string]string)
m1["name"] = "tom"
m1["age"] = "20"
m1["email"] = "tom@gmail.com"
fmt.Printf("m1: %v\\n", m1)
m2 := map[string]string
"name": "kite",
"age": "20",
"email": "kite@gmail.com",
fmt.Printf("m2: %v\\n", m2)
运行结果
[Running] go run "d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"
m1: map[age:20 email:tom@gmail.com name:tom]
m2: map[age:20 email:kite@gmail.com name:kite]
访问map
可以通过下标key获得其值,例如:
package main
import "fmt"
func main()
m1 := make(map[string]string)
m1["name"] = "tom"
m1["age"] = "20"
m1["email"] = "tom@gmail.com"
name := m1["name"]
age := m1["age"]
email := m1["email"]
fmt.Printf("name: %v\\n", name)
fmt.Printf("age: %v\\n", age)
fmt.Printf("email: %v\\n", email)
运行结果
[Running] go run "d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"
name: tom
age: 20
email: tom@gmail.com
判断某个键是否存在
go语言中有个判断map中键是否存在的特殊写法,格式如下:
value, ok := map[key]
如果ok为true,存在;否则,不存在。
实例
package main
import "fmt"
func main()
m1 := make(map[string]string)
m1["name"] = "tom"
m1["age"] = "20"
m1["email"] = "tom@gmail.com"
v, ok := m1["address"]
if ok
fmt.Println("键存在")
fmt.Println(v)
else
fmt.Println("键不存在")
运行结果
[Running] go run "d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"
键不存在
以上是关于Go语言自学系列 | golang map的主要内容,如果未能解决你的问题,请参考以下文章