map
是使用key:value
儲存資料的資料結構,
跟陣列
、結構
相似都可以在單個變數存入大量資料,
但它需要有key
的存在,key
如同值的身分證一樣,
使我們在管理資料更加便利,
另外,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的基礎使用方法。
取得map元素的範例如下:
package main
import ("fmt")
func main() {
var scores = map[string]int{
"JIMMY": 100,
"GG": 20,
"HJ": 0}
fmt.Println(scores["JIMMY"]) //查詢JIMMY的分數多少
}
輸出結果:
100
增加與更新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]
如要刪除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]
如果想要確認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