Go语言基础之怎么使用Map

这篇文章主要讲解了“Go语言基础之怎么使用Map”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言基础之怎么使用Map”吧!

创新互联基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业成都移动机房报价,主机托管价格性价比高,为金融证券行业服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。

引入map

map,在Python中叫字典,Java中也叫map,PHP中好像列表就带有map的功能。

map是键值对(key-value)存储结构,是无序的,内部使用哈希(hash)实现,性能很高。

在Go中,map是引用类型

map基本使用

map语法

方式一,声明时赋值 var 变量名 = map[key类型][value类型]{     key:value,     key:value,//必须使用,结尾,否则会报错 } //方式二,make方式 var 变量名 = make(map[key类型]value类型, 容量(cap)) //如果map是make方式声明的,第二个参数直接就是容量,元素个数是0,没有第三个参数

示例

方式一,声明时赋值

代码

package main  import "fmt"  func main() {     var stu1 = map[string]string{         "Name":   "张三",         "Age":    "18",         "height": "188", //每行都要以,结尾, }     var stu2 = map[string]string{         "Name":   "李四",         "Age":    "20",         "height": "170", //每行都要以,结尾, }     fmt.Println(stu1, stu2)      //map[Age:18 Name:张三 height:188] map[Age:20 Name:李四 height:170] }

方式二,make方式

代码

package main  import "fmt"  func main() {     var stu1 = make(map[string]string,10)     stu1["Name"] = "张三"     stu1["Age"] = "18"     stu1["height"] = "188"      var stu2 = make(map[string]string,10)     stu2["Name"] = "李四"     stu2["Age"] = "20"     stu2["height"] = "170"     fmt.Println(stu1,stu2)     //map[Age:18 Name:张三 height:188] map[Age:20 Name:李四 height:170] }

ps:关于这两种方式,哪个使用的多。

我的建议是,如果确定有多少个字段,就使用第一种,如果不确定多少个字段,是动态添加的,用第二种。

使用第二种要大概估算好容量,超过会触发自动扩容机制,可能会产生那么一丝丝的性能影响。

遍历map(查)

遍历map,通常只用一种方式for range。

代码

package main  import "fmt"  func main() {     var stu1 = make(map[string]string, 10)     stu1["Name"] = "张三"     stu1["Age"] = "18"     stu1["height"] = "188"      for key, value := range stu1 {         //map遍历时,key值键,value是值         fmt.Println(key, value)   } }

只遍历key

package main  import "fmt"  func main() {     var stu1 = make(map[string]string, 10)     stu1["Name"] = "张三"     stu1["Age"] = "18"     stu1["height"] = "188"      for key := range stu1 {         //只遍历key         fmt.Println(key)   } }

修改map的值(改)

package main  import "fmt"  func main() {     //var stu1 = make(map[string]string, 10)     //stu1["Name"] = "张三"     //stu1["Age"] = "18"     //stu1["height"] = "188"     //     //stu1["Name"] = "张三666"//修改     //fmt.Println(stu1)      //同上     var stu1 = map[string]string{         "Name":   "张三",         "Age":    "18",         "height": "188", //每行都要以,结尾, }     stu1["Name"] = "张三666"//修改     fmt.Println(stu1) }

删除map里面的值

删除map里面的值需要用到delete。

代码

package main  import "fmt"  func main() {      var stu1 = map[string]string{         "Name":   "张三",         "Age":    "18",         "height": "188", //每行都要以,结尾, }     fmt.Println(stu1)    //map[Age:18 Name:张三 height:188]     delete(stu1, "Name") //删除key以及key对应的值     fmt.Println(stu1)    //map[Age:18 height:188] }

map取值注意事项

map在取值时,尽可能的判断一下是否key存在

package main  import "fmt"  func main() {    var stu1 = map[string]string{     "Name":   "张三",     "Age":    "18",     "height": "188", //每行都要以,结尾,   }   //result := stu1["Name"]//key存在,没问题   //fmt.Println(result)//张三   //result := stu1["Names"]//手一抖,key打错了   //fmt.Println(result)//结果为空,显然不是太友好    //取值标准用法   result, ok := stu1["Name"]   //如果key存在,ok为true,如果key不存在,ok为false   fmt.Println(result,ok)//张三 true   if ok {     fmt.Println(result)   } else {     fmt.Println("key不存在")   } }

感谢各位的阅读,以上就是“Go语言基础之怎么使用Map”的内容了,经过本文的学习后,相信大家对Go语言基础之怎么使用Map这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


文章标题:Go语言基础之怎么使用Map
文章链接:http://hbruida.cn/article/gsgepi.html