前言
Go语言中提供了映射关系容器为map
,其内部使用散列表(hash)
实现。类似Python中的字典。
map的定义及基本操作
package main import "fmt" func main() { //定义了1个map变量,key是sring类型、value是int类型 var m1 map[string]int fmt.Println(m1 == nil) //还没有初始化(没有在内存中开辟空间) //初始化:估算好map的容量,避免程序运行期间在扩容 m1 = make(map[string]int, 10) m1["年龄"] = 18 fmt.Println(m1) fmt.Println(m1["年龄"]) //获取不存在的key v, ok := m1["姓名"] if !ok { fmt.Println("没有该key") } else { fmt.Println(v) } //直接获取不存在的key,返回对应类型的默认值 fmt.Println(m1["不存在的key"]) //遍历map的key和value m2 := make(map[string]string, 10) m2["姓名"] = "Martin" m2["性别"] = "男" for k, v := range m2 { fmt.Println(k, v) } //仅遍历map的keys for k := range m2 { fmt.Println(k) } //仅遍历map的values for _, v := range m2 { fmt.Println(v) } //删除map中的key delete(m2,"姓名") fmt.Println(m2) //删除map中不存在的key() no-option delete(m1,"不存在的key") /* go doc builtin.delete 查看内置函数的用法 func delete(m map[Type]Type1, key Type) The delete built-in function deletes the element with the specified key (m[key]) from the map. If m is nil or there is no such element, delete is a no-op. */ }