Go語言map用法實(shí)例分析
本文實(shí)例講述了Go語言map用法。分享給大家供大家參考。具體分析如下:
map 映射鍵到值:
map 在使用之前必須用 make 來創(chuàng)建(不是 new);一個(gè)值為 nil 的 map 是空的,并且不能賦值。
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)體文法相似,不過鍵名是必須的。
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)
}
如果頂層類型只有類型名的話,可以在文法的元素中省略鍵名。
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 中插入或修改一個(gè)元素:
獲得元素:
刪除元素:
通過雙賦值檢測某個(gè)鍵存在:
如果 key 在 m 中, ok 是 true。 否則,ok 是 false 并且 elem 是 map 的元素類型的零值。
同樣的,當(dāng)從 map 中讀取某個(gè)不存在的鍵時(shí),結(jié)果是 map 的元素類型的零值。
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)
}
希望本文所述對(duì)大家的Go語言程序設(shè)計(jì)有所幫助。
相關(guān)文章
一文詳解Golang協(xié)程調(diào)度器scheduler
這篇文章主要介紹了一文詳解Golang協(xié)程調(diào)度器scheduler,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07
go語言題解LeetCode1122數(shù)組的相對(duì)排序
這篇文章主要為大家介紹了go語言題解LeetCode1122數(shù)組的相對(duì)排序,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Go習(xí)慣用法(多值賦值短變量聲明賦值簡寫模式)基礎(chǔ)實(shí)例
本文為大家介紹了Go習(xí)慣用法(多值賦值,短變量聲明和賦值,簡寫模式、多值返回函數(shù)、comma,ok 表達(dá)式、傳值規(guī)則)的基礎(chǔ)實(shí)例,幫大家鞏固扎實(shí)Go語言基礎(chǔ)2024-01-01
深入了解Go的HttpClient超時(shí)機(jī)制
在寫?Go?的過程中經(jīng)常對(duì)比這Java和GO語言的特性,踩了不少坑,也發(fā)現(xiàn)了不少有意思的地方,今天就來聊聊?Go?自帶的?HttpClient?的超時(shí)機(jī)制2022-11-11

