前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言基础之map补充

Go语言基础之map补充

作者头像
Go进阶者
发布2021-01-22 10:49:52
5690
发布2021-01-22 10:49:52
举报
文章被收录于专栏:Go语言进阶学习Go语言进阶学习

前言

Hey,大家好,我是星期八,咱们接着上次继续说,补充一些map的知识。

上节回顾

在上节,我们学习了map如何使用。

map有两种方式定义,一种是标准方式,声明时赋值,一种是make。

代码语言:javascript
复制
package main

import "fmt"

func main() {

    var stu1 = map[string]string{
        "Name":   "张三",
        "Age":    "18",
        "height": "188", //每行都要以,结尾,
}

    stu2:=make(map[string]string,10)
    stu2["Name"] = "李四"
    stu2["Age"] = "170"
    stu2["height"] = "109"

    fmt.Println(stu1,stu2)
    //map[Age:18 Name:张三 height:188] map[Age:170 Name:李四 height:109]
}

发现问题

不知道你有没有发现一个问题,我们现在存储的map好像只能存储一个。

应该来说,我应该有个列表,存储着一个个的学生信息。

伪代码:

代码语言:javascript
复制
var student_list = [张三的信息,李四的信息,王五的信息,...]

但是玩了这么久,依然还是一个个单的的信息,这搞得,害。

切片中存储map

我们知道切片,是这样定义的。

代码语言:javascript
复制
var names []string
var names = []string{}
var names = make([]string,0,10)

上述中,列表保存的都是基本类型,字符串了,数字了,等。

来点刺激的,列表中直接存map。

伪代码

代码语言:javascript
复制
var names = []map[string]string{}
//注意:map[string]string{}是切片里面值的类型,这个切片里面的每个值都是map类型

示例代码

代码语言:javascript
复制
package main

import "fmt"

func main() {
    //定义个类型是map的列表
    var names = []map[string]string{}
    var name1 = map[string]string{
        "Name": "张三",
        "Age":  "18",
}
    var name2 = map[string]string{
        "Name": "李四",
        "Age":  "22",
}
    names = append(names, name1, name2) //向列表中添加map
    fmt.Println(names)                  //[map[Age:18 Name:张三] map[Age:22 Name:李四]]
}

图解

map中保存切片

在以往的操作中,我们的mapkeyvalue都是一个

那像一个人的爱好了,生活习惯了,等,都不止一个,所以,在map中,map的值(value),应该能保存多个才对。

代码

代码语言:javascript
复制
package main

import "fmt"

func main() {
    //map中,value为切片类型
    var person_hoppy = map[string][]string{}
    person_hoppy["hoppy"] = []string{"吃", "喝", "拉", "撒"}
    fmt.Println(person_hoppy)//map[hoppy:[吃 喝 拉 撒]]
}

图解

注:在map中,key只能是固定值,因为要通过key找值,所以key不能修改,value可以是任意类型。

总结

上述我们补充了一些map的知识。如果在操作过程中有任何问题,记得下面讨论区留言,我们看到会第一时间解决问题。

我是码农星期八,如果觉得还不错,记得动手点赞一下哈。感谢你的观看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Go语言进阶学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 上节回顾
  • 发现问题
  • 切片中存储map
  • map中保存切片
  • 总结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档