iT邦幫忙

2023 iThome 鐵人賽

DAY 1
1
自我挑戰組

Go語言自學挑戰系列 第 13

第十三天:Map介紹

  • 分享至 

  • xImage
  •  

Map介紹

map是使用key:value儲存資料的資料結構,

陣列結構相似都可以在單個變數存入大量資料,

但它需要有key的存在,key如同值的身分證一樣,

使我們在管理資料更加便利,

另外,map只能儲存同資料類型的值。

創造map的方式

map的]宣告方式如下:

var map名稱 = map[key型態]值型態{key1:值1, key2:值2,...}

範例如下:

package main
import ("fmt")

func main() {
  var scores = map[string]int{
  "JIMMY": 100,
  "GG": 20,
  "HJ": 0}
 
  fmt.Println(scores)
}

輸出結果:

map[GG:20 HJ:0 JIMMY:100]

基礎使用方法

以下介紹map的基礎使用方法。

1. 取得map元素

取得map元素的範例如下:

package main
import ("fmt")

func main() {
  var scores = map[string]int{
  "JIMMY": 100,
  "GG": 20,
  "HJ": 0}
 
  fmt.Println(scores["JIMMY"]) //查詢JIMMY的分數多少
}

輸出結果:

100

2. 增加與更新map元素

增加與更新map元素的範例如下:

package main
import ("fmt")

func main() {
  var scores = map[string]int{
  "JIMMY": 100,
  "GG": 20,
  "HJ": 0}
 
  scores["JIMMY"] = 1000 //更新map元素
  scores["jim"] = 12 //增加map元素
 
  fmt.Println(scores)
}

輸出結果:

map[GG:20 HJ:0 JIMMY:1000 jim:12] 

3. 刪除map元素

如要刪除map元素使用delete(map名稱,key)函式。

程式範例如下:

package main
import ("fmt")

func main() {
  var scores = map[string]int{
  "JIMMY": 100,
  "GG": 20,
  "HJ": 0}
 
  scores["JIMMY"] = 1000 
  scores["jim"] = 12
 
  delete(scores,"HJ") //刪除掉HJ
  
  fmt.Println(scores)
}

輸出結果:

map[GG:20 JIMMY:1000 jim:12]

4.確認map中是否有該元素

如果想要確認map中是否有該元素可使用以下方法:

val, ok :=map名稱[key]

如果有該元素val, ok會回傳值與true,如果沒有則回傳空值與false

程式範例如下:

package main
import ("fmt")

func main() {
  var scores = map[string]int{
  "JIMMY": 100,
  "GG": 20,
  "HJ": 0}
 
 val1, ok1 := scores["JIMMY"] 
 val2, ok2 := scores["jim"] 
  
  fmt.Println(val1, ok1)
  fmt.Println(val2, ok2)
}

輸出結果:

100 true
0 false

參考資料

  1. https://www.w3schools.com/go/go_maps.php

上一篇
第十二天:golang 結構 Struct介紹
下一篇
第十四天:Golang 指標Pointer
系列文
Go語言自學挑戰29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言