九、Go語言Map
Map 是一種無序的鍵值對的集合。Map 最重要的一點是通過 key 來快速檢索數據,key 類似于索引,指向數據的值。
Map 是一種集合,所以我們可以像迭代數組和切片那樣迭代它。不過,Map 是無序的,我們無法決定它的返回順序,這是因為 Map 是使用 hash 表來實現的。
定義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 不能用來存放鍵值對。
package main
import "fmt"
func main() {
var countryCapitalMap map[string]string /*創建集合 */
countryCapitalMap = make(map[string]string)
/* map插入key - value對,各個國家對應的首都 */
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()刪除鍵值對
//接著使用上面創建的map
delete(countryCapitalMap, "France") //刪除key = France的映射