map的基本使用:python
package main import "fmt" // 先聲明 type PersonInfo struct { id string name string addr string } func main() { // map是一堆鍵值對的未排序集合,就像python中的字典同樣 var PersonDB map[string] PersonInfo PersonDB = make(map[string] PersonInfo) //往map中插入幾條數據 PersonDB["wualin"] = PersonInfo{"001","wualin","xinyu"} PersonDB["zhang"] = PersonInfo{"002","zhang","xiushui"} // 從map中取數據,查找關鍵字爲"wualin"的數據 person1 := PersonDB["wualin"] fmt.Println(person1) fmt.Println(person1.name) // 經過 . 取map中的數據 person2,ok := PersonDB["zhang"] if ok{// ok是一個返回的bool類型,返回True則表示找到了對應的數據 fmt.Println(person2) } else{ fmt.Println("沒有找到zhang...") } }
map的聲明基本上沒有多餘的元素,好比:函數
var PersonDB map[string] PersonInfo
PersonDB是map變量名,string是鍵的類型,PersionInfo則是其中存放值的類型ui
使用go語言內置的函數make()來建立一個新map,例:code
PersonDB = make(map[string] PersonInfo)
也能夠選擇是否在建立時置頂該map的初始存儲能力,例:排序
PersonDB = make(map[string] PersonInfo,100)
建立並初始化map,例:string
PersionDB = map[string] PersionInfo{ "1234":PersionInfo{"1","wualin","xinyu"} } }
PersonDB["wualin"] = PersonInfo{"001","wualin","xinyu"}
Go語言提供了一個內置函數delete(),用於刪除容器內的元素io
delete(PersionDB,"wualin")
若是鍵"wualin"不存在,那麼這個調用將什麼都不會發生import
根據關鍵字從map取數據,例:容器
value,ok := PersionDB["wualin"] if ok{ // 找到了 // 處理找到的value } }
使用ok能夠快速檢查是否找到數據,不須要去判斷value是否爲空變量