go語言之 map集合
阿新 • • 發佈:2019-01-10
Map 是一種無序的鍵值對的集合。
Map 最重要的一點是通過 key 來快速檢索資料,key 類似於索引,指向資料的值。
Map 是一種集合,所以我們可以像迭代陣列和切片那樣迭代它。不過,Map 是無序的,我們無法決定它的返回順序,
這是因為 Map 是使用 hash 表來實現的
下面看具體例項:
package main import ( "fmt" ) // func myPrint(a map) { // fmt.Printf("T=%T v=%v \n",a,a) // } func main() { fmt.Println("ok") // 定義map的方法 /* 宣告變數,預設 map 是 nil var map_variable map[key_data_type]value_data_type 使用 make 函式 map_variable := make(map[key_data_type]value_data_type) */ var new_map map[string]string new_map = make(map[string]string) // 必須要這樣建立的原因,因此使用切片的方法使這個集合可以在後面再被增加操作 // 如果不初始化 map,那麼就會建立一個 nil map。nil map 不能用來存放鍵值對 // 下面就是進行了初始化操作的map new_map1 := map[string]string{ "name":"asd", } var countryCapitalMap map[string]string /*建立集合 */ countryCapitalMap = make(map[string]string) new_map ["test"] = "aea" new_map ["new"] = "26" fmt.Println(new_map) // 並且這個初始化的map;可以可以再增加的 new_map1["age"] = "28" fmt.Println(new_map1) /* map插入key - value對,各個國家對應的首都 */ countryCapitalMap [ "France" ] = "Paris" countryCapitalMap [ "Italy" ] = "羅馬" countryCapitalMap [ "Japan" ] = "東京" countryCapitalMap [ "India " ] = "新德里" fmt.Println(countryCapitalMap) for country := range countryCapitalMap { fmt.Println(country, "首都是", countryCapitalMap [country]) } /*檢視元素在集合中是否存在 */ captial, ok := countryCapitalMap [ "美國" ] /*如果確定是真實的,則存在,否則不存在 */ fmt.Println(captial) // 因為不存在,所以返回一個空 fmt.Println(ok) if (ok) { fmt.Println("美國的首都是", captial) } else { fmt.Println("美國的首都不存在") } // 使用delete函式刪除map裡面的值 delete(countryCapitalMap,"Japan") fmt.Println(countryCapitalMap) }