概念簡介
map 是 Go語言 內置的關聯數據類型
在一些其他的語言中稱為哈希(hash) 或者字典(dict)。
例程代碼
package main
import "fmt"
func main() {
// 要創建一個空 map,需要使用內建的 `make`:
// `make(map[key-type]val-type)`.
m := make(map[string]int)
// 使用典型的 `make[key] = val` 語法來設置鍵值對。
m["k1"] = 7
m["k2"] = 13
// 使用例如 `fmt.Println` 來打印一個 map 將會輸出所有的
// 鍵值對。
fmt.Println("map:", m)
// 使用 `name[key]` 來獲取一個鍵的值
v1 := m["k1"]
fmt.Println("v1: ", v1)
// 當對一個 map 調用內建的 `len` 時,返回的是鍵值對
// 數目
fmt.Println("len:", len(m))
// 內建的 `delete` 可以從一個 map 中移除鍵值對
delete(m, "k2")
fmt.Println("map:", m)
// 當從一個 map 中取值時,可選的第二返回值指示這個鍵
// 是否在這個 map 中。這可以用來消除鍵不存在和鍵有零值,
// 像 `0` 或者 `""` 而產生的歧義。這裏我們不需要值,所以
// 用_空白標識符(blank identifier)_忽略。
_, prs := m["k2"]
fmt.Println("prs:", prs)
// 你也可以通過這個語法在同一行聲明和初始化一個新的
// map。
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map:", n)
}
執行&輸出
# 注意一個 map 在使用 `fmt.Println` 打印的時候,是以 `map[k:v k:v]`
# 的格式輸出的。
$ go run maps.go
map: map[k1:7 k2:13]
v1: 7
len: 2
map: map[k1:7]
prs: false
map: map[foo:1 bar:2]
課程導航
學習上一篇:Go語言教程:slice切片 學習下一篇:Go語言教程:range遍曆
相關資料
本例程github源代碼:https://github.com/xg-wang/gobyexample/tree/master/examples/maps