本文實例講述了Go語言map用法。分享給大家供大家參考。具體分析如下:
map 映射鍵到值:
map 在使用之前必須用 make 來創(chuàng)建(不是 new);一個值為 nil 的 map 是空的,并且不能賦值。
復制代碼 代碼如下:
package main
import "fmt"
type Vertex struct {
Lat, Long float64
}
var m map[string]Vertex
func main() {
m = make(map[string]Vertex)
m["Bell Labs"] = Vertex{
40.68433, 74.39967,
}
fmt.Println(m["Bell Labs"])
}
map 的文法跟結(jié)構(gòu)體文法相似,不過鍵名是必須的。
復制代碼 代碼如下:
package main
import "fmt"
type Vertex struct {
Lat, Long float64
}
var m = map[string]Vertex{
"Bell Labs": Vertex{
40.68433, -74.39967,
},
"Google": Vertex{
37.42202, -122.08408,
},
}
func main() {
fmt.Println(m)
}
如果頂層類型只有類型名的話,可以在文法的元素中省略鍵名。
復制代碼 代碼如下:
package main
import "fmt"
type Vertex struct {
Lat, Long float64
}
var m = map[string]Vertex{
"Bell Labs": {40.68433, -74.39967},
"Google": {37.42202, -122.08408},
}
func main() {
fmt.Println(m)
}
修改map:
在 map m 中插入或修改一個元素:
復制代碼 代碼如下:
m[key] = elem
獲得元素:
復制代碼 代碼如下:
elem = m[key]
刪除元素:
復制代碼 代碼如下:
delete(m, key)
通過雙賦值檢測某個鍵存在:
復制代碼 代碼如下:
elem, ok = m[key]
如果 key 在 m 中, ok 是 true。 否則,ok 是 false 并且 elem 是 map 的元素類型的零值。
同樣的,當從 map 中讀取某個不存在的鍵時,結(jié)果是 map 的元素類型的零值。
復制代碼 代碼如下:
package main
import "fmt"
func main() {
m := make(map[string]int)
m["Answer"] = 42
fmt.Println("The value:", m["Answer"])
m["Answer"] = 48
fmt.Println("The value:", m["Answer"])
delete(m, "Answer")
fmt.Println("The value:", m["Answer"])
v, ok := m["Answer"]
fmt.Println("The value:", v, "Present?", ok)
}
希望本文所述對大家的Go語言程序設計有所幫助。
您可能感興趣的文章:- Golang學習筆記(四):array、slice、map
- 理解Golang中的數(shù)組(array)、切片(slice)和map
- Go語言字典(map)用法實例分析【創(chuàng)建,填充,遍歷,查找,修改,刪除】
- Go語言用map實現(xiàn)堆棧功能的方法
- go語言map字典刪除操作的方法
- Go語言map字典用法實例分析
- GO語言映射(Map)用法分析
- Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié)
- Go語言中的Array、Slice、Map和Set使用詳解
- golang針對map的判斷,刪除操作示例