宣告一個 Map 的規則是:m := map[<Key鑰匙型態>]<Value型態>{}
如以下範例:
m := map [int] int {}
m := map [string] int {}
m := map [int] string {}
m := map [int] *int {}
....等等
但是我們也可以在宣告的時候就順便給值:m := map[string]int{<key值>:<value值>, <key值>:<value值>}
如下範例:
m := map [int] int { 0:5, 1:7, 2:62, 3:55, 75}
m := map [string] int {"AAA":111,"BBB":222,"CCC",333}
m := map [int] string {0:"XXX", 11:"YYY", 222:"ZZZ"}
m := map [int] *int {5: *a, 4:*b, 3:*c} // 儲存帶有指針的也可以
....等等
剩下就看以下範例吧:
預設不代值:
package main
func main() {
m := map[string]string{}
m["127.0.0.1"] = "我的IP"
m["151.202.5.7"] = "夏娜的IP"
m["111.222.124.364"] = "瑪莉的IP"
println(m["127.0.0.1"])
println(m["151.202.5.7"])
println(m["111.222.124.364"])
}
輸出結果 |
我的IP |
預設不帶值(迴圈輸出):
package main
func main() {
m := map[string]string{}
m["127.0.0.1"] = "我的IP"
m["151.202.5.7"] = "夏娜的IP"
m["111.222.124.364"] = "瑪莉的IP"
for k, v := range m {
println(k,".........", v)
}
}
輸出結果 |
111.222.124.364 ......... 瑪莉的IP |
預設帶值(迴圈輸出):
package main
func main() {
m := map[string]string{
"127.0.0.1": "我的IP",
"151.202.5.7": "夏娜的IP",
"111.222.124.364": "瑪莉的IP"}
for k, v := range m {
println(k, ".........", v)
}
輸出結果 |
111.222.124.364 ......... 瑪莉的IP |
Map 儲存、使用指針:
package main
func main() {
i := 0 // i 目前是 0
k := &i // k 指向 i
m := map[string]*int{"k-key": k} // 儲存指針 k
*m["k-key"] = 5 // 指針 k = 5
print(i) // 如果 k 改變 i 也會跟著改變,輸出結果應當為 5
}
輸出結果 |
5 |
刪除 Map 其中的 Key 鑰匙:
package main
func main() {
i := map[int]string{-5: "JJJ"}
i[1] = "AAA"
i[3] = "BBB"
i[5] = "CCC"
println("-----------------刪除前 Map:")
for k, v := range i {
println(k, v)
}
delete(i, 3) // 刪除 key 鑰匙 3
println("-----------------刪除後 Map:")
for k, v := range i {
println(k, v)
}
}
輸出結果 |
-----------------刪除前 Map: |
留言列表