Go - map

定义

map - 类似于HashTable或者Dictionary,使用key-value 对子的形式来表示。

key 必须由支持 == 或者 := 比较运算符,不能是函数,Slice还有Map类型。

map 查找比遍历快,但是比索引查找慢得多(100倍)。

 

使用"make" 关键字来定义map, 语法为:

 

package main

import (
    "fmt"
)

func main() {
    var m1 map[int]string
    fmt.Println(m1)

    var m2 map[int]string
    m2 = map[int]string{}
    fmt.Println(m2)

    m3 := make(map[int]string)
    fmt.Println(m3)
}

 

当键值对不存在时自动添加,使用 “delete” 关键字进行删除 

package main

import (
    "fmt"
)

func main() {
    
    m3 := make(map[int]string)
    fmt.Println(m3)
    m3[1] = "ok"
    a := m3[1]
    fmt.Println(a)
}

//output
map[]
ok

 

Map 嵌套 与 多返回值

m4 := make(map[int]map[int]string) //定义一个map,其value还是map
a, ok := m4[0][0] //定义多返回值 a, ok, ok 为 bool 类型
if !ok {
    m4[0] = make(map[int]string) //定义外层map的value(还是map)
    m4[0][0] = "Good" // 赋值
}
a, ok = m4[0][0]
fmt.Println(a, ok)

//output
Good true

 

posted @ 2017-05-10 22:45  TonyZhang24  阅读(205)  评论(0编辑  收藏  举报