首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go程序例子(10):映射(Map)

Go程序例子(10):映射(Map)

原创
作者头像
用户11078756
发布2024-12-10 08:55:37
发布2024-12-10 08:55:37
2930
举报
文章被收录于专栏:go程序例子go程序例子

映射(Map)是 Go 语言内置的关联数据类型(在其他语言中有时称为哈希(hash)或字典(dict))。

代码语言:go
复制
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")
    }
}

运行结果:

代码语言:javascript
复制
$ 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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档