GoLang - 語言基礎 Map

Golang - 語言基礎 Slice

在這幾篇,會以 Go 語言的入門基礎進行逐步說明,本篇針對Map 進行說明

前面提到 Array, Slice 用法,但是在實際使用時,有些情況會需要透過 key-value 方式來操作資料。

在 Go 語言可以透過 Map 來使用(概念與 Python 的字典一樣)

Map 使用時,有以下幾點需要注意:

  • map屬於參考類型,可動態調整長度(與 slice 一樣)
  • 兩個 map 可指向同一個底層 map,底層變更則統一變更
  • 可透過 len 取得擁有 key 的數量
  • Map 所儲存的值並不會有排序,因此每次 output 結果都會有差異
  • 只能透過 key 取得值,不能透過 index 取得值

宣告一個 map

var mapName map[keyType]valueType

例如

mapName := map[string]int{"foo": 1, "bar": 2}
fmt.Println(mapName)

//output map[bar:2 foo:1]

刪除 Key 可以透過 delete

mapName := map[string]int{"foo": 1, "bar": 2}
delete(mapName, "foo")
fmt.Println(mapName)

//output map[bar:2]

另外,可透過 make 來宣告

mapName := make(map[KeyType]vauleType)

基本上,定義完成後,就可以用 key-vaule 方式來定義及取得值

例如:

mapName := make(map[string]int)
mapName["one"] = 1
mapName["two"] = 2
fmt.Println(mapName)

//output map[one:1 two:2]