映射(Map)是 Go 语言内置的关联数据类型(在其他语言中有时称为哈希(hash)或字典(dict))。
package main
import (
"fmt"
"maps"
)
func main() {
// 要创建一个空的映射(Map),可以使用内置的 **make** 函数:make(map[键类型]值类型)。
m := make(map[string]int)
// 使用常规的语法 name[key] = value 来设置键值对。
m["k1"] = 7
m["k2"] = 13
// 使用例如 fmt.Println 打印映射(map)时,会显示其所有的键值对。
fmt.Println("map:", m)
// 使用 name[key] 语法可以获取指定键的值。
v1 := m["k1"]
fmt.Println("v1:", v1)
// 如果键不存在,则会返回值类型的零值(zero value)。
v3 := m["k3"]
fmt.Println("v3:", v3)
// 内置函数 len 可用于映射(map),返回键值对的数量。
fmt.Println("len:", len(m))
// 内置函数 delete 可从映射(map)中删除指定的键值对。
delete(m, "k2")
fmt.Println("map:", m)
// 内置函数 clear 可以删除映射(map)中的所有键/值对。
clear(m)
fmt.Println("map:", m)
// 从映射(map)中获取值时的可选第二返回值表示该键是否存在于映射中。这可以用来区分不存在的键和具有零值(如 0 或 "")的键。在这里,我们不需要值本身,所以用空白标识符 _ 忽略了它。
_, prs := m["k2"]
fmt.Println("prs:", prs)
// 你还可以使用这种语法在同一行中声明并初始化一个新的映射(map)。
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map:", n)
// maps 包包含许多对映射(map)有用的实用函数。
n2 := map[string]int{"foo": 1, "bar": 2}
if maps.Equal(n, n2) {
fmt.Println("n == n2")
}
}运行结果:
$ go run maps.go
map: map[k1:7 k2:13]
v1: 7
v3: 0
len: 2
map: map[k1:7]
map: map[]
prs: false
map: map[bar:2 foo:1]
n == n2原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。