Go语言学习 十六 映射

本文介绍了Go语言中的映射(map)数据结构,包括映射的类型、初始化、字面量创建、插入与检索、逗号ok用法、映射迭代以及删除元素的方法。映射是键值对类型,键必须支持相等比较,映射长度可变,通过内置函数操作映射时,修改对调用者可见。
摘要由CSDN通过智能技术生成

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验


映射是一种键-值对类型的内置数据结构。它将键映射到值,其中键是唯一的,即不允许重复,重复则会覆盖之前的值。映射的键类型必须是完整的定义了相等运算符(==!=)的类型,如整数,浮点数,复数,字符串,指针,结构和数组;如果键是接口类型,则其动态类型必须支持相等比较。因此,键类型不能是函数,映射或切片。失败会触发运行时panic。映射中的元素是无序的。映射的零值为nilnil映射尚未初始化,不能添加元素,也不能使用。

一 映射类型

映射类型如下:
map[key类型]元素类型

map[string]int
map[*T]struct{
    x, y float64 }
map[string]interface{
   }

映射中元素的个数称为映射的长度。与数组和切片一样,可以使用内置函数len()来获取映射的长度,映射的长度可能在执行期间发生变化。执行期间可以添加或检索其中的元素,也可以使用内置函数delete()移除其中的元素。

与切片一样,映射保存对底层数据结构的引用。若将映射传入函数中,并更改了该映射的内容,则此修改对调用者同样可见。

1.1 映射的初始化

可以使用内置函数make()来构建一个新的空映射,它可以接受一个映射类型和一个可选的初始容量参数:

package main

import "fmt"

func main() {
   
	var m map[string]int // 声明一个零值映射

	week := make(map[string]int) // 初始化一个map
	week["周一"] = 0               // 增加一个元素
	week["周二"] = 1

	color := make(map[string]s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值