字典

字典定义

字典用于存储键值对数据,关键字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)
}

最后更新于