當前位置: 首頁>>編程語言>>正文


Go語言教程:map/hash/dict

返回Go語言教程首頁

概念簡介

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

Go語言map/dict/hash

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/4014.html,未經允許,請勿轉載。