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