Map的基本使用

Adler @ 2016-12-09


簡單列出在Go底下如何操作map型別:

package main

import "fmt"

func main() {
    // map都是reference,帶入function會直接修改原本的值,跟Ruby的Hash相同

    // 基本宣告方式
    // var my_map map[string]string,或是
    my_map := make(map[string]string)

    // 用等於的方式可以insert也可以update
    my_map["John"] = "Great"
    my_map["Bob"] = "Good"
    my_map["Mary"] = "Awesome"

    // 快速宣告
    // 第一個string代表key類別,第二個string代表value類別
    // 最後一個value的逗點要留著
    another_map := map[string]string{
        "John": "Great",
        "Bob":  "Good",
        "Mary": "Awesome",
    }

    // 刪除
    delete(my_map, "Mary")

    // 用key查詢map時會回傳兩個值,第一個是查詢結果,第二個是確認是否存在
    // 可直接用第二個值當做判斷
    if value, exists := my_map["John"]; exists {
        fmt.Println(value + " exists")
    }

    for i, c := range my_map {
        fmt.Println(i)
        fmt.Println(c)
    }
}