栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

go map

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go map

文章目录
  • go map
    • map的定义
    • map的使用

go map

map 是在 Go 中将值(value)与键(key)关联的内置类型。通过相应的键可以获取到值(字典类型)2value值可以任意,但是go中value值必须都一致,key值只能用数字,字符串,布尔,key值也固定。

map的定义
var m map[string]int  //map[key值类型]value类型
fmt.Println(m)  // map[] 只定义,没有初始化,零值是nil
if m == nil {
    fmt.Println("map 零值是nil")
}
// 使用make创建map类型,第一个参数传类型,map有长度没有容量,因此只需要传一个参数
var m1 map[string]int=make(map[string]int)
fmt.Println(m1)  // map[]
if m1 == nil {  // m1 已初始化
    fmt.Println("map 零值是nil")
} else {
    fmt.Println("m1 已初始化")
}
虽然此时 m1和m打印出来的都是 map[],但是使用make创建map类型会以默认以 零 值初始化
map的使用

基本使用,除了限制多了点,和python字典类型差不多

m := map[string]int{"name":12,"age":19}
fmt.Println(m["age"])  // 取值
m["age"]=99      	// 修改值
// 赋值不存在的
m["sex"]=1  // 正常赋值
fmt.Println(m)  // map[age:99 name:12 sex:1]
// 取不存在的值,不会报错,会取出 value值的0值
fmt.Println(m["hobby"])  // 0

// 如果当这个值存在,并且就是 value值的0值,那么怎么判断呢
m["hobby"]=0
fmt.Println(m) // map[age:99 hobby:0 name:12 sex:1]
fmt.Println(m["hobby"])  // 0
// 可以根据key取vlaue,并判断value是否存在
 // 可以使用两个值来接收,第二个值是个布尔值,如果ok为true,说明存在,否则不存在
_,ok:=m["hobby"] 
fmt.Println(ok)  // true

go删除值,只能通过内置函数,并且只能根据key删除

m := map[string]int{"name":12,"age":19}
delete(m,"name")
delete(m,"hobby")  // 删除不存在的,不会报错
fmt.Println(m)

补充知识:

  1. map长度,len函数查看,就是key值的多少,并且map没有容量的说法,可以无限扩容
  2. map是引用类型,零值是 nil,引用类型一定要初始化,值类型不需要初始化就有零值
  3. map 之间不能使用 == 操作符判断,== 只能用来检查 map 是否为 nil
  4. 引用类型不能比较 ,值类型能比较
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003851.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号