Go語言基礎之map

2022-01-12 19:38:50 字數 2101 閱讀 7196

go語言中提供的對映關係容器為map,其內部使用雜湊表(hash)實現。

map是一種無序的基於key-value的資料結構,go語言中的map是引用型別,必須初始化才能使用。

go語言中map的定義語法如下:

map[keytype]valuetype

其中,map型別的變數預設初始值為nil,需要使用make()函式來分配記憶體。語法為:

make(map[keytype]valuetype, [cap])

其中cap表示map的容量,該引數雖然不是必須的,但是我們應該在初始化map的時候就為其指定乙個合適的容量。

map中的資料都是成對出現的,map的基本使用示例**如下:

func main()

輸出:

map[小明:100 張三:90

]100

type of a:map[

string]int

map也支援在宣告的時候填充元素,例如:

func main() 

fmt.println(userinfo)

//}

go語言中有個判斷map中鍵是否存在的特殊寫法,格式如下:

value, ok := map[key]

舉個例子:

func main()  

else

}

go語言中使用for range遍歷map。

func main() 

}

但我們只想遍歷key的時候,可以按下面的寫法:

func main() 

}

注意:遍歷map時輸出的元素順序與填充順序無關。

使用delete()內建函式從map中刪除一組鍵值對,delete()函式的格式如下:

delete(map, key)

其中, * map:表示要刪除鍵值對的map * key:表示要刪除的鍵值對的鍵

示例**如下:

func main()

}

func main() 

//取出map中的所有key存入切片keys

var keys = make(string, 0, 200

)

for key :=range scoremap

//對切片進行排序

sort.strings(keys)

//按照排序後的key遍歷map

for _, key :=range keys

}

下面的**演示了切片中的元素為map型別時的操作:

func main() 

fmt.println(

"after init")

//對切片中的map元素進行初始化

mapslice[0] = make(map[string]string, 10

) mapslice[

0]["

name

"] = "小王"

mapslice[

0]["

password

"] = "

123456

"mapslice[

0]["

address

"] = "昌平

"for index, value :=range mapslice

}

下面的**演示了map中值為切片型別的操作:

func main() 

北京", "上海"

) slicemap[key] =value

fmt.println(slicemap)

}

練習寫乙個程式,統計乙個字串中每個單詞出現的次數。比如:」how do you do」中how=1 do=2 you=1。

go語言基礎之map

go語言中提供的對映關係容器為map,其內部使用雜湊表hash實現 map map是一種無序的基於key value的資料結構,必須初始化才能使用 package main import fmt func main fmt.println map1 判斷某乙個值是否存在 返回兩個引數,1.返回的值 ...

Go語言基礎之map

map是python中的dict型別。目錄 map的宣告基本上沒有多餘的元素。var mapname map keytpye valuetype其中 map型別的變數預設初始值為nil,需要使用make 函式來分配記憶體。語法為 make map keytype valuetype,cap 如果不使...

Go語言基礎之map

go語言中提供的對映關係容器為map,其內部使用雜湊表 hash 實現。map是一種無序的基於key value的資料結構,go語言中的map是引用型別,必須初始化才能使用。go語言中map的定義語法如下 map keytype valuetype其中,map型別的變數預設初始值為nil,需要使用m...