九哩俭、Go語言Map
Map 是一種無序的鍵值對的集合。Map 最重要的一點是通過 key 來快速檢索數(shù)據(jù)拳恋,key 類似于索引凡资,指向數(shù)據(jù)的值。
Map 是一種集合诅岩,所以我們可以像迭代數(shù)組和切片那樣迭代它讳苦。不過,Map 是無序的吩谦,我們無法決定它的返回順序鸳谜,這是因為 Map 是使用 hash 表來實現(xiàn)的。
定義Map
/* 聲明變量式廷,默認(rèn) map 是 nil */
var map_variable map[key_data_type]value_data_type
/* 使用 make 函數(shù) */
map_variable := make(map[key_data_type]value_data_type)
如果不初始化 map咐扭,那么就會創(chuàng)建一個 nil map。nil map 不能用來存放鍵值對。
package main
import "fmt"
func main() {
var countryCapitalMap map[string]string /*創(chuàng)建集合 */
countryCapitalMap = make(map[string]string)
/* map插入key - value對,各個國家對應(yīng)的首都 */
countryCapitalMap [ "France" ] = "Paris"
countryCapitalMap [ "Italy" ] = "羅馬"
countryCapitalMap [ "Japan" ] = "東京"
countryCapitalMap [ "India " ] = "新德里"
/*使用鍵輸出地圖值 */ for country := range countryCapitalMap {
fmt.Println(country, "首都是", countryCapitalMap [country])
}
/*查看元素在集合中是否存在 */
captial, ok := countryCapitalMap [ "美國" ] /*如果確定是真實的,則存在,否則不存在 */
/*fmt.Println(captial) */
fmt.Println(ok) //這一行會輸出false
if (ok) {
fmt.Println("美國的首都是", captial)
} else {
fmt.Println("美國的首都不存在")
}
}
//輸出
France 首都是 Paris
Italy 首都是 羅馬
Japan 首都是 東京
India 首都是 新德里
美國的首都不存在
使用delete()刪除鍵值對
//接著使用上面創(chuàng)建的map
delete(countryCapitalMap, "France") //刪除key = France的映射