iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
Modern Web

golang後端入門分享系列 第 11

Day11-Go映射map

前言

前面我們介紹了幾種變數容器,例如陣列和切片,這些皆以數字做為索引,而今天要介紹的映射(map),是另一種容器,儲存鍵/值 (key/value) 對,是將鍵作為索引,以鍵來取相對的值。

建立映射

在建立映射時,會搭配make來建立,而map也沒有長度的限制,以下示範建立一個空的map:

package main
 
import (
   "fmt"
)
func main() {
   // 宣告一個空的映射
   m := make(map[string]string)
   // 印出map
   fmt.Println(m)
}

然而填入映射的方式,與陣列和切片類似,這裏以程式碼來示範一下如何填入map的鍵/值對:

package main
 
import (
   "fmt"
)
func main() {
   // 宣告一個空的映射
   m := make(map[string]string)
    // 填入map
   m["台北市"] = "柯文哲"
   m["台中市"] = "盧秀燕"
   m["高雄市"] = "陳其邁"
   // 印出map
   fmt.Println(m)
}

空鍵值

如果今天印出一個 map 中不存在的鍵所對應的值,會是印出什麼呢?

package main
 
import (
   "fmt"
)
func main() {
   // 宣告一個空的映射
   m := make(map[string]string)
   // 填入map
   m["台北市"] = "柯文哲"
   m["台中市"] = "盧秀燕"
   m["高雄市"] = "陳其邁"
   // 印出map
   fmt.Println(m["台南市"])
}

以上面的範例,在最後印出的為空的值,如果不確定鍵/值對是否存在,也可以用以下語法檢查:

package main
 
import (
   "fmt"
)
func main() {
   // 宣告一個空的映射
   m := make(map[string]string)
   // 填入map
   m["台北市"] = "柯文哲"
   m["台中市"] = "盧秀燕"
   m["高雄市"] = "陳其邁"
   // 確認是否為鍵值
   v, ok := m["台北市"]
   fmt.Println(v, ok) // 柯文哲 true
}

v 變數為鍵對應到的值,ok 則為布林值,代表鍵值是否存在,像這個例子,因為 "台北市" 為存在的鍵,所以 ok 對應到的值為 true,相反的帶入 "台南市" ,就會印出 false。

刪除鍵值對

如果想刪除某對鍵/值,我們可以用 delete 函式來處理:

package main
 
import (
   "fmt"
)
func main() {
   // 宣告一個空的射.
   m := make(map[string]string)
 
   // 填入map
   m["台北市"] = "柯文哲"
   m["台中市"] = "盧秀燕"
   m["高雄市"] = "陳其邁"
   // 刪除一對鍵值
   delete(m, "台北市")
   // 印出一對鍵值
   fmt.Println(m)
}

結語

映射的特色是,我們能由鍵得到值,但不能由值得到鍵;另外,鍵不能重覆,但值可以。希望今天介紹映射給各位讀者,各位讀者可以知道映射如何使用。下一篇我們將介紹 Go 語言的指標,感謝今天的閱讀!

參考來源

https://opensourcedoc.com/golang-programming/map/


上一篇
Day10-Go結構Struct
下一篇
Day12-指標Pointer
系列文
golang後端入門分享30

尚未有邦友留言

立即登入留言