golang的map类似其他语言的哈希或字典。
package main
import (
"fmt"
"golang.org/x/exp/maps"
)
func main() {
// 创建空map用内置的make函数
m := make(map[string]int)
// 给map赋值语法 key/value用:name[key] = val
m["k1"] = 7
m["k2"] = 13
fmt.Println("map:", m)
// print
// map: map[k1:7 k2:13]
// 获取值用name[key]
v1 := m["k1"]
fmt.Println("v1:", v1)
// print
// v1: 7
// 如果key不存在,返回类型的零值(默认值)
v3 := m["k3"]
fmt.Println("v3:", v3)
// print
// v3: 0
// len返回map的长度
fmt.Println("len:", len(m))
// print
// len: 2
// 用delete把键值对从map中删除
delete(m, "k2")
fmt.Println("map:", m)
// print
// map: map[k1:7]
// 删除所有键值对
maps.Clear(m) // old version 1.19. 如果你是新版本1.21 可以直接使用 clear函数
fmt.Println("map:", m)
// print
// map: map[]
// 第二个返回参数是可选的,表示这个key是否存在于map中。这个返回值可以避免歧义,不存在的key返回的默认值,还是key存在但是值类型零值的情况。
_, prs := m["k2"]
fmt.Println("prs:", prs)
// print
// prs: false
// 一行,声明加初始化
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map:", n)
// print
// map: map[bar:2 foo:1]
// maps包的函数判断两个map是否相等
n2 := map[string]int{"foo": 1, "bar": 2}
if maps.Equal(n, n2) {
fmt.Println("n == n2")
}
// print
// n == n2
}
本文详细介绍了Golang中的map数据结构,包括创建、赋值、访问、删除以及maps包提供的函数,如判断两个map是否相等。
4万+

被折叠的 条评论
为什么被折叠?



