1. 程式人生 > 實用技巧 >Runoob-Go:Go 語言Map(集合)

Runoob-Go:Go 語言Map(集合)

ylbtech-Runoob-Go:Go 語言Map(集合)

1.返回頂部
1、

Go 語言Map(集合)

Map 是一種無序的鍵值對的集合。Map 最重要的一點是通過 key 來快速檢索資料,key 類似於索引,指向資料的值

Map 是一種集合,所以我們可以像迭代陣列和切片那樣迭代它。不過,Map 是無序的,我們無法決定它的返回順序,這是因為 Map 是使用 hash 表來實現的。

定義 Map

可以使用內建函式 make 也可以使用 map 關鍵字來定義 Map:

/* 宣告變數,預設 map 是 nil */
var map_variable map[key_data_type]value_data_type

/* 使用 make 函式 */
map_variable := make(map[key_data_type]value_data_type)

如果不初始化 map,那麼就會建立一個 nil map。nil map 不能用來存放鍵值對

例項

下面例項演示了建立和使用map:

例項

packagemain

import"fmt"

funcmain(){
varcountryCapitalMapmap[string]string/*建立集合 */
countryCapitalMap=make(map[string]string)

/* map插入key - value對,各個國家對應的首都 */
countryCapitalMap["France"]="巴黎"
countryCapitalMap["Italy"]="羅馬"
countryCapitalMap["Japan"]="東京"
countryCapitalMap["India "]="新德里"

/*使用鍵輸出地圖值 */
forcountry:=rangecountryCapitalMap{
fmt.Println(country,"首都是",countryCapitalMap[country])
}

/*檢視元素在集合中是否存在 */
capital,ok:=countryCapitalMap["American"]/*如果確定是真實的,則存在,否則不存在 */
/*fmt.Println(capital) */
/*fmt.Println(ok) */
if(ok){
fmt.Println("American 的首都是",capital)
}else{
fmt.Println("American 的首都不存在")
}
}

以上例項執行結果為:

France 首都是 巴黎
Italy 首都是 羅馬
Japan 首都是 東京
India  首都是 新德里
American 的首都不存在

delete() 函式

delete() 函式用於刪除集合的元素, 引數為 map 和其對應的 key。例項如下:

例項

packagemain

import"fmt"

funcmain(){
/* 建立map */
countryCapitalMap:=map[string]string{"France":"Paris","Italy":"Rome","Japan":"Tokyo","India":"New delhi"}

fmt.Println("原始地圖")

/* 列印地圖 */
forcountry:=rangecountryCapitalMap{
fmt.Println(country,"首都是",countryCapitalMap[country])
}

/*刪除元素*/delete(countryCapitalMap,"France")
fmt.Println("法國條目被刪除")

fmt.Println("刪除元素後地圖")

/*列印地圖*/
forcountry:=rangecountryCapitalMap{
fmt.Println(country,"首都是",countryCapitalMap[country])
}
}

以上例項執行結果為:

原始地圖
India 首都是 New delhi
France 首都是 Paris
Italy 首都是 Rome
Japan 首都是 Tokyo
法國條目被刪除
刪除元素後地圖
Italy 首都是 Rome
Japan 首都是 Tokyo
India 首都是 New delhi
2、
2.返回頂部
3.返回頂部
4.返回頂部
5.返回頂部
1、 https://www.runoob.com/go/go-map.html 2、
6.返回頂部
作者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。