go语言使用-引用数据类型——Map

一、概述

1、基本介绍
map是key-value数据结构,又称为字段或者关联数组。类似其它编程语言的集合,
在编程中是经常使用到。

2、map和数组的区别
map相对数组而言,可以存储信

二、基本语法

var map变量名 map[keytype]valuetype

1、 key 可以是什么类型

golang中的map,的 key 可以是很多种类型,比如 bool, 数字,string, 指针, channel , 还可以是只包含前面几个类型的 接口, 结构体, 数组
通常为int 、string
注意: slice, map 还有 function 不可以,因为这几个没法用 == 来判断

2、 valuetype 可以是什么类型

valuetype的类型和key基本一样,这里我就不再赘述了
通常为: 数字(整数,浮点数),string,map,struct

3、 注意和说明几点

  • 在给map类型赋值,必须先make空间,才能使用。
  • make 时,size , 如果程序员明确知道 key-val 有多少对,最好写明确,如果不确定的话,也可以省略,交给系统维护
  • map是无序的,既不会安装key来排序,也不会安装添加的顺序.->如何排序
  • map的key,即不能重复,如果你重复了,则相当于覆盖

4、示例代码

package main
import (
    "fmt"
)

func main() {

    var map1 map[string]map[string]string
    //在map1中保存2个学生信息[编号唯一, (名字,爱好,年龄)]

    //1. 先给map1 make空间
    map1 = make(map[string]map[string]string, 3)
    //2. 给map1["no1"] make空间
    map1["no1"] = make(map[string]string, 3)
    map1["no1"]["name"] = "小明"
    map1["no1"]["hobby"] = "看世界杯"
    map1["no1"]["age"] = "20"

    //3. 给map1["no2"] make空间
    map1["no2"] = make(map[string]string)
    map1["no2"]["name"] = "小李~" 
    map1["no2"]["hobby"] = "看欧洲杯"
    map1["no2"]["age"] = "30"

    //3. 给map1["no2"] make空间
    map1["no2"] = make(map[string]string)
    map1["no2"]["name"] = "小张" 
    map1["no2"]["hobby"] = "看欧洲杯~"
    map1["no2"]["age"] = "40"

    fmt.Println("map1=",map1)

}

三、快速入门案例

package main
import (
    "fmt"
)

func main() {

    //几个map的小案例
    //map1 map[int]string
    //1. map1 就是这个map类型的名字
    //2. map 是一个关键字表示是一个map,固定的
    //3. [int] 表示这个map的key的数据类型
    //4. string 表示这个map的value的数据类型
    var map1 map[int]string

    //在使用map之前,需要先make一个数据空间
    // make(map[int]string, 10)
    //1. make是个函数,表示给map1分配数据空间
    //2. map[int]string 分配的空间类型
    //3. 10 表示分配空间大小
    map1 = make(map[int]string, 10)

    map1[10] = "tom"
    map1[11] = "tom"
    fmt.Println(map1)
//key还可以是 接口,结构体,数组
    var arr1 = [3]int{1,2,3}
    var arr2 = [3]int{1,2,4}
    fmt.Println("arr1=arr2?", arr1==arr2)

    var map2 map[[3]int]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值