程序=数据结构+算法,所以数据结构是在程序中非常重要,而字典是一种重要的数据结构。字典是存储键值对的数据结构,把一个键和一个值映射起来,一一映射,键不能重复。在某些教程中,这种结构可能称为符号表,关联数组或映射。我们暂且称它为字典,较好理解。
Golang 提供了这一数据结构:map,并且要求键的数据类型必须是可比较的,因为如果不可比较,就无法知道键是存在还是不存在。
Golang 字典的一般的操作如下:
package main
import "fmt"
func main() {
//新建一个容量为5的字典 map
m := make(map[string]int64, 5)
//放三个键值对
m["pig"] = 1
m["dog"] = 2
m["hen"] = 3
fmt.Println(m)
//查找 hen
which := "hen"
v, ok := m[which]
if ok {
//找到了
fmt.Println("find:", which, "value:", v)
} else {
//找不到
fmt.Println("not find:", which)
}
//查找cat
which = "cat"
v, ok = m[which]
if ok {
//找到了
fmt.Println("find:", which, "value:", v)
} else {
//找不到
fmt.Println("not find:", which)
}
}
输出:map[dog:2 hen:3 pig:1]
find: hen value: 3
not find: cat字典的实现有两种方式:哈希表 HashTable 和红黑树 RBTree。Golang 语言中字典 map 的实现由哈希表实现,具体可参考标准库 runtime 下的 map.go 文件。
| 留言与评论(共有 0 条评论) “” |