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的主要内容,如果未能解决你的问题,请参考以下文章

Go语言自学系列 | golang包

Go语言自学系列 | golang数组

Go语言自学系列 | golang标准库bytes

Go语言自学系列 | golang高阶函数

Go语言自学系列 | golang构造函数

Go语言自学系列 | 如何编写golang代码