Go - map

定义

map - 类似于HashTable或者Dictionary,使用key-value 对子的形式来表示。

key 必须由支持 == 或者 := 比较运算符,不能是函数,Slice还有Map类型。

map 查找比遍历快,但是比索引查找慢得多(100倍)。

 

使用"make" 关键字来定义map, 语法为:

 

复制代码
package main

import (
    "fmt"
)

func main() {
    var m1 map[int]string
    fmt.Println(m1)

    var m2 map[int]string
    m2 = map[int]string{}
    fmt.Println(m2)

    m3 := make(map[int]string)
    fmt.Println(m3)
}
复制代码

 

当键值对不存在时自动添加,使用 “delete” 关键字进行删除 

复制代码
package main

import (
    "fmt"
)

func main() {
    
    m3 := make(map[int]string)
    fmt.Println(m3)
    m3[1] = "ok"
    a := m3[1]
    fmt.Println(a)
}

//output
map[]
ok
复制代码

 

Map 嵌套 与 多返回值

复制代码
m4 := make(map[int]map[int]string) //定义一个map,其value还是map
a, ok := m4[0][0] //定义多返回值 a, ok, ok 为 bool 类型
if !ok {
    m4[0] = make(map[int]string) //定义外层map的value(还是map)
    m4[0][0] = "Good" // 赋值
}
a, ok = m4[0][0]
fmt.Println(a, ok)

//output
Good true
复制代码

 

posted @   TonyZhang24  阅读(210)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示