[GO]map的使用

map的格式:info := map[int]string{111:"baylor"}

它是一个key:value的形式,方括号里面是key的类型,后面是value的类型,它是无序的,我们无法决定它的返回顺序

需要注意的是:在同一个map里,key的值必须是唯一的,而且必须是支持==或者!=操作符的类型,切片、函数、以及包含切片的结构类型这些由于具有引用语义,所以不能做为映射的键。比如:info := [ []string ]int{},这样的一个类型就报错

package main

import "fmt"

func main()  {
    var m1 map[int]string
    fmt.Println("m1 = ", m1)
    //对于一个map来说,只有长度,没有容量的说法
    fmt.Println("m1 lenth = ", len(m1))
    //可以通过make创建
    m2 := make(map[int]string)
    fmt.Println("m2 lenth = ", len(m2))
    //可以指定长度,当然这里只是指定了长度,如果在没有元素的情况下,打印出m3的长度仍然为0
    //只有给m3赋某个值的时候,打印长度才会有值
    m3 := make(map[int]string, 10)
    fmt.Println("m3 lenth = ", len(m3))
    m3[1] = "balorqu"
    m3[2] = "go"
    m3[3] = "c++"
    fmt.Println("m3 = ", m3)
    fmt.Println("m3 lenth = ", len(m3))
}

执行结果

m1 =  map[]
m1 lenth =  0
m2 lenth =  0
m3 lenth =  0
m3 =  map[2:go 3:c++ 1:balorqu]
m3 lenth =  3

猜你喜欢

转载自www.cnblogs.com/baylorqu/p/9595678.html