Go-基础回顾-复合数据类型-Map

140 阅读1分钟

复合类型 - Map

定义

  • 一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。
    • 如果不初始化 map,那么就会创建一个nil map。nil map 不能用来存放键值对
  • 一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map是无序的,我们无法决定它的返回顺序,这是因为 Map是使用Hash表来实现的。

声明方式

  • map[KeyType]ValueType
    • KeyType 键类型
    • ValueType 值类型
  • make(map[KeyType]ValueType, [cap])
    • cap 容量,该参数虽然不是必须的,按需使用。

遍历方式

  • for k,v := range map {}

操作方式

  • 删除 delete(map, key)
  • 判断key存在,value, ok := map[key]
// 声明map
var m map[string]string
// 初始化
m = make(map[string]string)
// 赋值
m["test"] = "hello"
fmt.Printf("%v \n", m) // map[test:hello]

// 判断某个key是否存在
val, ok := m["world"]
fmt.Printf("%b", ok) //%!b(bool=false)
if ok {
	fmt.Printf("%v \n", val)
}

// 遍历map
m["test"] = "test"
for k,v := range m {
	fmt.Printf("key: %s; val: %s \n", k, v) 
}
Stdout
key: hello; val: hello 
key: test; val: test 

delete(m, "test")
for k,v := range m {
	fmt.Printf("key: %s; val: %s \n", k, v)
}

Stdout
key: hello; val: hello 

参考