Golang 学习手册
  • 主页
  • 安装
  • 参考资料
  • Q&A
  • 基础
    • Hello,world!
    • 包
    • 变量
    • 常量
    • 类型
      • 整型
      • 浮点型
      • 复数
      • 布尔型
      • 字符
      • 字符串
      • 数组
      • 切片
      • 字典
      • 指针
      • 方法
      • 结构体
      • 接口
      • 自定义类型
    • 语法
      • 判断
      • 循环
      • 错误处理
    • 协程
      • 锁
      • 等待组
      • 通道
      • 上下文
    • 测试与分析
      • 单元测试
      • 性能测试
      • 性能分析
    • 编译
      • 条件编译
      • 交叉编译
  • 高级
    • 存储
      • 键值存储
        • Etcd
    • HTTP
      • http服务基础
      • Websocket
      • 开源框架
        • Beego
        • Echo
        • Gin
        • Iris
        • Revel
        • 框架对比
      • Kubernetes风格API框架
    • RPC
      • RPCX
      • GRPC
      • grpc-gateway
    • 连接分发器
    • TLS加密
    • 链路追踪
      • skywalking
  • 项目管理
    • 代码规范
    • 包管理
    • 文档
      • GoDoc
      • Markdown
      • Swagger
    • 仓库管理
      • 分支管理
      • 问题管理
      • 里程碑管理
      • 发布管理
    • 持续集成
      • CircleCI
      • TravisCI
由 GitBook 提供支持
在本页
  • 字典定义
  • 字典初始化
  • 字典元素读写
  • 字典元素删除
  • 引用传递

这有帮助吗?

在Git上编辑
  1. 基础
  2. 类型

字典

字典定义

字典用于存储键值对数据,关键字map,定义格式:

var 变量名 map[键类型]值类型

字典在未赋值的情况下值为nil,通过make()方法初始化字典

字典初始化

例子:初始化字典

// 定义一个键为字符串,值为字符串的字典m1
var m1 map[string]string
// 初始化字典m1
m1 = make(map[string]string)

// 定义一个键为字符串,值为整型切片字典m2
var m2 map[string][]int
// 初始化字典m2
m2 = make(map[string][]int)

字典元素读写

字典内容可动态增删,通过键名可对字典进行索引,做赋值或读取操作,使用len()方法可获取字典长度

例子:字典读写

package main

import (
	"fmt"
)

func main() {
	// 定义字典
	var m1 map[string]string
	// 初始化字典
	m1 = make(map[string]string)
	
	// 为字典赋值
	m1["key1"] = "value1"
	m1["key2"] = "value2"
	
	// 通过键名获取对应的值
	fmt.Println(m1["key2"])

	// 输出字典内容
	fmt.Println(m1)
	// 输出字典长度
	fmt.Println(len(m1))
}

以上代码的执行结果:

value2
map[key1:value1 key2:value2]
2

字典元素删除

可通过内置方法delete()删除字典元素

例子:删除字典元素

package main

import (
	"fmt"
)

func main() {
	// 定义字典
	var m1 map[string]string
	// 初始化字典
	m1 = make(map[string]string)
	
	// 为字典赋值
	m1["key1"] = "value1"
	m1["key2"] = "value2"
	
	// 通过键名删除字典元素
	delete(m1,"key1")

	// 输出字典内容
	fmt.Println(m1)
	// 输出字典长度
	fmt.Println(len(m1))
}

以上代码的执行结果:

map[key2:value2]
1

引用传递

字典类型采用的是引用传递方式,其变量值可以看做是一个指针

例子:通过引用传递修改字典内容

package main

import (
	"fmt"
)

func main() {
	m1 := make(map[string]string)
	m2 := m1
	m1["hello"] = "hi"
	fmt.Println(m2)
}

上一页切片下一页指针

最后更新于4年前

这有帮助吗?