GO学习笔记之 map

一.map介绍

map是key-Value数据结构,又称为字段或者关联数组。类似其他编程语言的集合,在编程中经常使用。

二.map的声明

基本语法:map是无序的

var map变量名 map[keytype] valuetype

key可以是什么类型

golang中的map,的key可以是很多种类型,比如bool,数字,string,指针,channel,还可以是只包含前面几个类型的接口,结构体,数组

通常为int,string

注意:slice,map,function不可以为key的数据类型。

value 可以是什么类型

valuetype的类型和key基本一样。

通常为:数字,string,map,struct

map声明的案例:

var a map[string] string

var a map[string] int

var a map[int] string

var a map[string] map[string] string

注意:声明是不会分配内存的,初始化需要make,分配内存后才能赋值和使用。

map的例子:

package main

import "fmt"

func main() {
    // map 的声明
    var a map[string]string
    // 在使用map前需要make 作用是给map分配数据空间
    a = make(map[string]string, 10) // 10代表10个空间
    a["age"] = "25"
    fmt.Println(a)

    fmt.Println(a["age"])
    // key不能重复 value会被重新赋值
    a["age"] = "24"
    fmt.Println(a)

    // key不重复的时候 value是可以重复的
    a["age_two"] = "24"
    fmt.Println(a)
}

上面例子的总结:

(1)使用map一定要make

(2)map的key是不能重复,如果重复了,则以最后这个key-value为准

(3)map的value是可以重复的

(4)map的key-value是无序的

三.map的使用方式

1.单层map