GoLang - 語言基礎 Map
在這幾篇,會以 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]